- ベストアンサー
【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 です。 どこが悪いんでしょうか? 正しいコーディングを教えてください。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>Windows(strFileName).Activate ←ここでエラーになる Windows("TEST.xls").Activate ならOKでしょう。ファイル名を指定します。
その他の回答 (4)
- hana-hana3
- ベストアンサー率31% (4940/15541)
>ファイル名は日々変わるので、ダイレクトに指定することができないのです。 変化する条件(ファイルの選択のしかた)をプログラミングに出来るなら可能です。
お礼
前回はありがとうございました。 変化する条件(日付がYYYYMMDD形式)はプログラミングできています。 今回はフルパスを指定したのが間違いだったみたいですね。 ご回答、ありがとうございました。
- fatteacher
- ベストアンサー率4% (1/22)
初めまして。 マクロの自動記録機能を使用すれば,宜しいのではないでしょうか。 もう一つの方法は,ユーザーホームを使って実行させる事も,出来るかと思います。
お礼
マクロ記録をしようすると、 ダイレクトにファイル名を指定してしまうんですよね、、、。 ユーザーホームは初耳です。 調べてみます。 ありがとうございました。
- suz83238
- ベストアンサー率30% (197/656)
いや、だから strFileName = "TEST.xls" Windows(strFileName).Activate ということ。
お礼
何度もすみません、 ファイル名だけで指定するとうまくいきました。 ありがとうございました。
- hallo-2007
- ベストアンサー率41% (888/2115)
まずは、 strFileName = "EST.xls" ファイル名に、パスは不要です。
お礼
ご回答、ありがとうございました。 パスを含めずフィル名だけの変数にて実行するとうまくいきました。
補足
ご回答、ありがとうございます。 ファイル名は日々変わるので、 ダイレクトに指定することができないのです。 他に何か解決策はありますでしょうか?