• ベストアンサー

【Excel VBA】ブックを複数開いている際、任意のブックをアクティブにしたい

OS:Windows XP Office:2003 複数のエクセルブックを開いている状態で、 ある任意のブックをアクティブにしてセルの操作(コピペなど)をしたいのですが、 "インデックスが有効範囲にありません"とエラーになってしまいます。 現在のソースは、 strFileName = "\\共有サーバー\共有\TEST.xls" Windows(strFileName).Activate ←ここでエラーになる Sheets("Sheet1").Select Cells.Select Selection.Copy Windows("貼り付け先.xls").Activate Sheets("Sheet1_n").Select Cells.Select ActiveSheet.Paste です。 どこが悪いんでしょうか? 正しいコーディングを教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • suz83238
  • ベストアンサー率30% (197/656)
回答No.1

>Windows(strFileName).Activate ←ここでエラーになる Windows("TEST.xls").Activate ならOKでしょう。ファイル名を指定します。

motsu2006
質問者

補足

ご回答、ありがとうございます。 ファイル名は日々変わるので、 ダイレクトに指定することができないのです。 他に何か解決策はありますでしょうか?

その他の回答 (4)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.5

>ファイル名は日々変わるので、ダイレクトに指定することができないのです。 変化する条件(ファイルの選択のしかた)をプログラミングに出来るなら可能です。

motsu2006
質問者

お礼

前回はありがとうございました。 変化する条件(日付がYYYYMMDD形式)はプログラミングできています。 今回はフルパスを指定したのが間違いだったみたいですね。 ご回答、ありがとうございました。

回答No.4

初めまして。 マクロの自動記録機能を使用すれば,宜しいのではないでしょうか。 もう一つの方法は,ユーザーホームを使って実行させる事も,出来るかと思います。

motsu2006
質問者

お礼

マクロ記録をしようすると、 ダイレクトにファイル名を指定してしまうんですよね、、、。 ユーザーホームは初耳です。 調べてみます。 ありがとうございました。

  • suz83238
  • ベストアンサー率30% (197/656)
回答No.3

いや、だから strFileName = "TEST.xls" Windows(strFileName).Activate ということ。 

motsu2006
質問者

お礼

何度もすみません、 ファイル名だけで指定するとうまくいきました。 ありがとうございました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

まずは、 strFileName = "EST.xls" ファイル名に、パスは不要です。

motsu2006
質問者

お礼

ご回答、ありがとうございました。 パスを含めずフィル名だけの変数にて実行するとうまくいきました。

関連するQ&A