- ベストアンサー
EXCELマクロで、開いてはいるがアクティブでないファイルをアクティブにする方法?
いつもこちらのサイトではお世話になっております。EXCELのマクロについて教えてください。 ファイルを2つ開いているとき、アクティブになっていないほうのファイル名を取得し、そのファイルをアクティブにしたいと考えています。 条件1) アクティブにしたいファイル名は必ず「グラフ」で始まり、「.xls」で終わります。 条件2) ファイルは2つともEXCELファイルです。 すみませんが、どうしてもやりかたが思いつかず、教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 なるほど、こちらの認識不足でした。 If wb.Name <> ActiveWorkbook.Name Then ↓ If wb.Name <> ActiveWorkbook.Name And Windows(wb.Name).Visible Then で、非表示ブックを対象外にします。
その他の回答 (4)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
Workbooks.count で現在開いているワークブックの数 Workboods(数字).name で該当するワークブックの名前 Workbooks(名前).activate で名前のわかっているワークブックをアクティブに ActiveWorkbook.name で現在アクティブのワークブックの名前 が得られます。 エクセルの画面のマクロの実行で実行していますか?
お礼
No5の方の方法の理解につながりました! 解説ありがとうございます。m(._.)m 非常に参考になりました。
- misatoanna
- ベストアンサー率58% (528/896)
開かれているファイルが2つの場合、そのどちらかに次のマクロを記述 しておきます。 アクティブになっているブックでこのマクロを実行すれば、もう一方が アクティブになります。 Sub test() Windows(2).Activate End Sub
お礼
ありがとうございます。(*'-'*) 簡潔な記述ですね。今度、時間があるときに試してみます。
- papayuka
- ベストアンサー率45% (1388/3066)
#1です。 記述は間違ってないので、操作又は認識違いでしょう。 1.新規ブックを作成する(Book1) 2.VBE画面で標準モジュールを追加し、先のマクロをコピぺする。 3.新規ブックを作成する(Book2) 4.マクロを実行する これで実行しても切り替わらない?
補足
お返事ありがとうございます!! 上記の通りやってみたのですが、だめでした。。 そこで、ステップで確認してみましたら、PERSONAL.xlsがアクティブになるように指示されていることがわかりました。 このPERSONAL.xlsをとばして、次のファイル「グラフ****.xls」を開くようにしたいと思いますが、どのようにしたらよいのでしょうか。 たびたび、大変恐縮ですが、教えてください。
- papayuka
- ベストアンサー率45% (1388/3066)
同一ウィンドウで開いている場合です。 3つ以上のブックを開いている時は最初に見つけたブックをアクティブにします。 Sub ActiveBookChange() Dim wb As Workbook For Each wb In Workbooks If wb.Name <> ActiveWorkbook.Name Then wb.Activate Exit For End If Next wb End Sub
補足
ありがとうございます。(*'-'*) 上記のマクロをそのまま実行してみたのですが、アクティブブックが変更になりません。 同一ウインドウで開いているのは確認しました。 すみませんが、再度、みていただけないでしょうか。
お礼
お返事ありがとうございます!♪o(*^▽^*)o うまくいきました! 今日中にやらなければいけないことが終わりそうです。 本当にお世話になりました。