• ベストアンサー

ブックを開くマクロについて

以前、ブックを開くマクロを質問しましたが、すでに開いている場合の処理方法が分かりません。 もし開いていたら・・・というマクロはどう記述すればよいでしょうか。初歩的なことですみません。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

Sub test01() Dim wb As Workbook booknm = "XXXX.xls" '<--ブック名指定 For Each wb In Workbooks If wb.Name = booknm Then MsgBox booknm & "は開いています。" Exit Sub End If Next MsgBox booknm & "は開いていません。" End Sub ただし、別にエクセルを起動し、開いたブックは捉えられていません。

noa8998
質問者

お礼

たびたびすみません。自己解決しました。 早急な回答、ありがとうございました。

noa8998
質問者

補足

質問が不十分で申し訳ありません。 「もし既に開かれているならば開かない」としたいのですが・・・

その他の回答 (1)

  • mindatg
  • ベストアンサー率48% (110/227)
回答No.1

まぁいくつか方法はあるんだけども Dim objBook as Workbook Dim blnOpen as Boolean = False ' 現在開かれているワークブックでループ For Each objBook In Workbooks  ' ループ中のワークブックに指定したファイル名があるか?  If objBook.Name = "hoge.xls" Then   ' ある=開かれている   blnOpen = True   Exit For  End If Next objBook If Not blnOpen Then  ' ブックを開く関数呼び出し End If

noa8998
質問者

お礼

たびたびすみません。自己解決しました。 早急な回答、ありがとうございました。

noa8998
質問者

補足

質問が不十分で申し訳ありません。 「もし既に開かれているならば開かない」としたいのですが・・・

関連するQ&A