プロが教える店舗&オフィスのセキュリティ対策術

いつもこちらのサイトではお世話になっております。EXCELのマクロについて教えてください。

ファイルを2つ開いているとき、アクティブになっていないほうのファイル名を取得し、そのファイルをアクティブにしたいと考えています。

条件1)
アクティブにしたいファイル名は必ず「グラフ」で始まり、「.xls」で終わります。

条件2)
ファイルは2つともEXCELファイルです。



すみませんが、どうしてもやりかたが思いつかず、教えてください。

A 回答 (5件)

#1です。



なるほど、こちらの認識不足でした。

If wb.Name <> ActiveWorkbook.Name Then

     ↓

If wb.Name <> ActiveWorkbook.Name And Windows(wb.Name).Visible Then

で、非表示ブックを対象外にします。
    • good
    • 5
この回答へのお礼

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

お礼日時:2004/09/11 15:18

Workbooks.count


で現在開いているワークブックの数
Workboods(数字).name
で該当するワークブックの名前
Workbooks(名前).activate
で名前のわかっているワークブックをアクティブに
ActiveWorkbook.name
で現在アクティブのワークブックの名前
が得られます。

エクセルの画面のマクロの実行で実行していますか?
    • good
    • 5
この回答へのお礼

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

お礼日時:2004/09/11 15:21

開かれているファイルが2つの場合、そのどちらかに次のマクロを記述


しておきます。
アクティブになっているブックでこのマクロを実行すれば、もう一方が
アクティブになります。

Sub test()
Windows(2).Activate
End Sub
    • good
    • 3
この回答へのお礼

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

お礼日時:2004/09/11 15:20

#1です。



記述は間違ってないので、操作又は認識違いでしょう。

1.新規ブックを作成する(Book1)
2.VBE画面で標準モジュールを追加し、先のマクロをコピぺする。
3.新規ブックを作成する(Book2)
4.マクロを実行する

これで実行しても切り替わらない?

この回答への補足

お返事ありがとうございます!!

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

補足日時:2004/09/11 14:44
    • good
    • 0

同一ウィンドウで開いている場合です。


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

この回答への補足

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

補足日時:2004/09/11 14:07
    • good
    • 5

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A