• ベストアンサー

EXCELマクロで、開いてはいるがアクティブでないファイルをアクティブにする方法?

いつもこちらのサイトではお世話になっております。EXCELのマクロについて教えてください。 ファイルを2つ開いているとき、アクティブになっていないほうのファイル名を取得し、そのファイルをアクティブにしたいと考えています。 条件1) アクティブにしたいファイル名は必ず「グラフ」で始まり、「.xls」で終わります。 条件2) ファイルは2つともEXCELファイルです。 すみませんが、どうしてもやりかたが思いつかず、教えてください。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.5

#1です。 なるほど、こちらの認識不足でした。 If wb.Name <> ActiveWorkbook.Name Then      ↓ If wb.Name <> ActiveWorkbook.Name And Windows(wb.Name).Visible Then で、非表示ブックを対象外にします。

lemon567
質問者

お礼

お返事ありがとうございます!♪o(*^▽^*)o うまくいきました! 今日中にやらなければいけないことが終わりそうです。 本当にお世話になりました。

その他の回答 (4)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

Workbooks.count で現在開いているワークブックの数 Workboods(数字).name で該当するワークブックの名前 Workbooks(名前).activate で名前のわかっているワークブックをアクティブに ActiveWorkbook.name で現在アクティブのワークブックの名前 が得られます。 エクセルの画面のマクロの実行で実行していますか?

lemon567
質問者

お礼

No5の方の方法の理解につながりました! 解説ありがとうございます。m(._.)m 非常に参考になりました。

回答No.3

開かれているファイルが2つの場合、そのどちらかに次のマクロを記述 しておきます。 アクティブになっているブックでこのマクロを実行すれば、もう一方が アクティブになります。 Sub test() Windows(2).Activate End Sub

lemon567
質問者

お礼

ありがとうございます。(*'-'*) 簡潔な記述ですね。今度、時間があるときに試してみます。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

#1です。 記述は間違ってないので、操作又は認識違いでしょう。 1.新規ブックを作成する(Book1) 2.VBE画面で標準モジュールを追加し、先のマクロをコピぺする。 3.新規ブックを作成する(Book2) 4.マクロを実行する これで実行しても切り替わらない?

lemon567
質問者

補足

お返事ありがとうございます!! 上記の通りやってみたのですが、だめでした。。 そこで、ステップで確認してみましたら、PERSONAL.xlsがアクティブになるように指示されていることがわかりました。 このPERSONAL.xlsをとばして、次のファイル「グラフ****.xls」を開くようにしたいと思いますが、どのようにしたらよいのでしょうか。 たびたび、大変恐縮ですが、教えてください。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

同一ウィンドウで開いている場合です。 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

lemon567
質問者

補足

ありがとうございます。(*'-'*) 上記のマクロをそのまま実行してみたのですが、アクティブブックが変更になりません。 同一ウインドウで開いているのは確認しました。 すみませんが、再度、みていただけないでしょうか。