• ベストアンサー

エクセルマクロで、別のブックが開いているかを判定したいのですが。

いつもお世話になっております。 マクロで質問なのですが、マクロを終了する際に Application.Quit  で終了していましたが、これだとマクロ起動前に別のブックが 開いているとそのブックまで閉じてしまいます。 マクロを起動した際に、別のブックが開いているかを判定して Application.Quit か close を使い分けて終了させたいのですが、 判定する為にはどのようにすればよいのでしょうか? よろしくお願い致します。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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 '-------------------------------------------

wise123
質問者

お礼

いろいろな方法があるんですね。 ありがとうございました^^

その他の回答 (1)

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.1

workbooks.Count=1 ならばマクロのあるBookだけが開いていることになります。

wise123
質問者

お礼

ありがとうございました。 countでブックを数えればよかったんですね。

関連するQ&A