- ベストアンサー
エクセルVBAでブック間のコピーをしたい。
エクセルVBAでブック間のコピーをしたい。 エクセルのVBA初心者です。 複数のブックが開いている時(ブックA,B,C...)に、今選択しているブックAのあるセルを、直前に選んでいたブックBやC(そのつど変わります)にコピーする方法は有りますでしょうか? どなたか教えて下さい。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「一つ前」をキープしておく事自体はまぁ簡単といえば簡単で,むしろご質問に書かれていない,「ナニを(どこから)」コピーしたいのかをどうやって命令したいのか考える方が大変です。 準備: コピー元になるBook1.xlsを用意する 準備1:Book1.xlsにクラスモジュールを追加する プロパティウィンドウでオブジェクト名(モジュール名)をEventClassModuleとでもしておく クラスモジュールに Public WithEvents App As Application Private Sub App_WindowDeactivate(ByVal Wb As Workbook, ByVal Wn As Window) Set Prepos = Wn.ActiveCell End Sub と記入しておく 準備2:Book1.xlsのThisWorkbookに Dim x As New EventClassModule Private Sub Workbook_Open() Set x.App = Application End Sub と記入しておく 準備3:Book1.xlsに標準モジュールを追加し Public Prepos As Range Sub macro1() Selection.Copy Destination:=Prepos End Sub と記入しておく。 Book1.xlsを保存し,閉じて,開き直す。 使い方: 幾つかブックを開く。 別のブックからBook1.xlsに戻り,コピーしたいセルを選んでMacro1を実行する。
お礼
ご丁寧にありがとうございました。 トンチンカンな質問ですみませんでした。 すごいですね。なんとか出来ましたが、私にとっては思った以上に難しかったです。 質問するにしても、もう少し勉強したいと思います。 ありがとうございました。