こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【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

です。

どこが悪いんでしょうか?
正しいコーディングを教えてください。

よろしくお願いします。

投稿日時 - 2008-03-18 21:13:58

QNo.3874483

すぐに回答ほしいです

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

>Windows(strFileName).Activate ←ここでエラーになる

Windows("TEST.xls").Activate
ならOKでしょう。ファイル名を指定します。

投稿日時 - 2008-03-18 21:19:38

補足

ご回答、ありがとうございます。

ファイル名は日々変わるので、
ダイレクトに指定することができないのです。

他に何か解決策はありますでしょうか?

投稿日時 - 2008-03-18 21:26:10

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

>ファイル名は日々変わるので、ダイレクトに指定することができないのです。

変化する条件(ファイルの選択のしかた)をプログラミングに出来るなら可能です。

投稿日時 - 2008-03-19 08:45:08

お礼

前回はありがとうございました。

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

ご回答、ありがとうございました。

投稿日時 - 2008-03-19 09:23:50

ANo.4

初めまして。
マクロの自動記録機能を使用すれば,宜しいのではないでしょうか。

もう一つの方法は,ユーザーホームを使って実行させる事も,出来るかと思います。

投稿日時 - 2008-03-19 08:38:15

お礼

マクロ記録をしようすると、
ダイレクトにファイル名を指定してしまうんですよね、、、。

ユーザーホームは初耳です。
調べてみます。

ありがとうございました。

投稿日時 - 2008-03-19 09:22:36

ANo.3

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

投稿日時 - 2008-03-18 21:56:52

お礼

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

ありがとうございました。

投稿日時 - 2008-03-19 09:12:07

ANo.2

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

投稿日時 - 2008-03-18 21:50:50

お礼

ご回答、ありがとうございました。

パスを含めずフィル名だけの変数にて実行するとうまくいきました。

投稿日時 - 2008-03-19 09:11:27

あなたにオススメの質問