- ベストアンサー
Excel VBA でファイルが開かれているか確認する
ExcelのVBAで、book1.xlsというファイルが現在開かれているか確認するにはどんなプロパティを使えばいいでしょうか? 実際にやりたい事は、book1.xlsに対して処理するマクロがあるのですが、そのbook1.xlsが開かれていなければ処理が出来ないのでマクロが入っているファイルを閉じる。というものです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Workbookは、Workbooksコレクションによって管理されているので、Worlbooksの中身を列挙することでチェック可能です。 Dim wb As WorkBook Dim blnFlag As Boolean For Each wb In Workbooks If wb.Name = "book1.xls" Then blnFlag = True Exit For End If Next もっと手っ取り早くですと、 Set wb = Workbooks("book1.xls") これでエラーが発生したら開いていないと判断できます。 ただし、この処理を呼ぶ前にOn Error Resume Nextでエラートラップを無効にしておかないと処理が中断してしまいます。
その他の回答 (1)
- nek784
- ベストアンサー率35% (145/411)
ファイルが開いているということはそのファイルを開いた時に読取専用になる ので読取専用かどうかチェックするのはどうでしょうか。 ちょっとおおざっぱですが,次のような感じでどうでしょうか。 If .ReadOnly Then ’ファイルを閉じる Else ’処理を行う End If
お礼
早速の回答ありがとうございます。 この方法だと、開こうとしたファイルが無い時はエラーになってしまいます。
お礼
出来ました! ありがとうございます。 「開いているかどうか?」っていうメソッドやプロパティは無いのですね。 ヘルプを一所懸命探していました。 早速の回答大変助かりました。ありがとうございました。