- ベストアンサー
ブックを開くマクロについて
以前、ブックを開くマクロを質問しましたが、すでに開いている場合の処理方法が分かりません。 もし開いていたら・・・というマクロはどう記述すればよいでしょうか。初歩的なことですみません。
- みんなの回答 (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 ただし、別にエクセルを起動し、開いたブックは捉えられていません。
その他の回答 (1)
- mindatg
- ベストアンサー率48% (110/227)
まぁいくつか方法はあるんだけども 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
お礼
たびたびすみません。自己解決しました。 早急な回答、ありがとうございました。
補足
質問が不十分で申し訳ありません。 「もし既に開かれているならば開かない」としたいのですが・・・
お礼
たびたびすみません。自己解決しました。 早急な回答、ありがとうございました。
補足
質問が不十分で申し訳ありません。 「もし既に開かれているならば開かない」としたいのですが・・・