10代と話して驚いたこと

ExcelのVBAで、book1.xlsというファイルが現在開かれているか確認するにはどんなプロパティを使えばいいでしょうか?

実際にやりたい事は、book1.xlsに対して処理するマクロがあるのですが、そのbook1.xlsが開かれていなければ処理が出来ないのでマクロが入っているファイルを閉じる。というものです。

A 回答 (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でエラートラップを無効にしておかないと処理が中断してしまいます。
    • good
    • 3
この回答へのお礼

出来ました!
ありがとうございます。
「開いているかどうか?」っていうメソッドやプロパティは無いのですね。
ヘルプを一所懸命探していました。
早速の回答大変助かりました。ありがとうございました。

お礼日時:2002/07/11 19:00

 ファイルが開いているということはそのファイルを開いた時に読取専用になる


ので読取専用かどうかチェックするのはどうでしょうか。
 ちょっとおおざっぱですが,次のような感じでどうでしょうか。
If .ReadOnly Then
’ファイルを閉じる
Else
’処理を行う
End If
    • good
    • 1
この回答へのお礼

早速の回答ありがとうございます。
この方法だと、開こうとしたファイルが無い時はエラーになってしまいます。

お礼日時:2002/07/11 19:03

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

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


おすすめ情報