とっておきの手土産を教えて

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

A 回答 (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
'-------------------------------------------
    • good
    • 1
この回答へのお礼

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

お礼日時:2009/12/10 10:02

workbooks.Count=1


ならばマクロのあるBookだけが開いていることになります。
    • good
    • 1
この回答へのお礼

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

お礼日時:2009/12/10 09:01

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

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


おすすめ情報

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