- ベストアンサー
エクセルマクロで、別のブックが開いているかを判定したいのですが。
いつもお世話になっております。 マクロで質問なのですが、マクロを終了する際に Application.Quit で終了していましたが、これだとマクロ起動前に別のブックが 開いているとそのブックまで閉じてしまいます。 マクロを起動した際に、別のブックが開いているかを判定して Application.Quit か close を使い分けて終了させたいのですが、 判定する為にはどのようにすればよいのでしょうか? よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 私は、このようにしています。 なぜ、Visible にするかというと、Personal.xls などが起動している場合に、カウントをさせないようにします。(Excel 2003 まで) '------------------------------------------- Sub TestMacro() Dim w As Workbook Dim i As Long For Each w In Application.Workbooks If w.Windows(1).Visible Then i = i + 1 End If Next w If i > 1 Then ThisWorkbook.Close SaveChanges:=True Else Application.Quit End Sub '-------------------------------------------
その他の回答 (1)
- rivoisu
- ベストアンサー率36% (97/264)
workbooks.Count=1 ならばマクロのあるBookだけが開いていることになります。
お礼
ありがとうございました。 countでブックを数えればよかったんですね。
お礼
いろいろな方法があるんですね。 ありがとうございました^^