• ベストアンサー

VBA エクセル 開いている別ファイルをアクティブにするには?

すみません、よろしくお願いいたします。 <前提> A.xls=コピー元ファイル(マクロを組んでいるのはこちら) 2009・・・.xls ファイル=コピー先ファイル(2009以降はファイル名が変化しますが、必ず頭に2009があります) 同一フォルダ内に上記のファイルがあります。 どちらも開いて、Aファイルのマクロを実行すると、Aのデータをコピーして、2009・・・のファイルに貼りつける。としたいのですが、 (1)ファイル名が変化するので貼り付け先のファイル名をどう指定したらよいかわからない。 (2)フォルダごと、色々な人へ配る予定なので、できればアクティブなファイルという指定をしたい。(他のファイルは開いてないという前提でOKです。) (3)フォルダ内には2009がつく別ファイルもあるので、(2)同様アクティブなファイルという指定をしたいです。 わかるかた、おねがいいたします。 BVA初心者です。 普通のマクロで記録したら、以下のようになりました。 (例) Sub Macro1() ' ' Macro1 Macro ' ' Range("A1").Select Selection.Copy Windows("20091002_2650.xls").Activate '←この20091002_2650.xlsが変化します。 Range("A10:B10").Select ActiveSheet.Paste End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

ファイル名が変わる場合は(2つしかファイルを立ち上げていないなら)以下のようにINDEX番号で指定してはいかがでしょう。 Windows("20091002_2650.xls").Activate      ↓ Windows(2).Activate 

monnmonn20
質問者

お礼

できました! すごーくすごーく助かりました!! こんなに簡単に選べるなんて! ありがとうございました!

その他の回答 (1)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

Sub Macro1()   ThisWorkbook.Sheets("XXXXX").Range("A1").Copy ActiveSheet.Range("A10:B10") End Sub な感じです。 ThisWorkbook とはマクロがあるBookです。A.xlsの事になります。 シート名が必要なので "XXXXX" の箇所は実際のシート名に変更が必要です。 後は、アクティブなファイルというより、アクティブなシート。と指定してあげれば良いです。

monnmonn20
質問者

お礼

ご回答ありがとうございました。 たすかりました!

関連するQ&A