都道府県穴埋めゲーム

お疲れ様です。

Open ステートメントで開いたファイルが、閉じていなければ閉じると言う処理をしたいのですが、ファイルが開きっぱなしかどうかを確認するには、どんな方法があるのでしょうか?

よろしくお願いします。

A 回答 (5件)

こんにちは



もう一度同じファイルを同じファイルNo.(#1)で
開きに行くと、
開きっぱなしなら“すでに開いています”とエラーになって
閉じていたら、エラーがないので
判断出きるはずです。
    • good
    • 8

こんにちは


厳密には#1の方の方法が確実ですし、閉じるのが目的なら#2の方の「Close」だけがいいかと思います。
私の場合は、グローバルな変数を用意して、Openした時にフラグを立てる方法を使うことがあります。
Dim boFile2Open As Boolean
Open ...
boFile2Open = Trueとか。
そのファイル番号をクローズしたときに、フラグを変更します。エラー時の処理も必要になりますけど。
あるいは FreeFile(0)で取得したファイル番号をチェックする方法を使ったこともあったような。
では!

この回答への補足

エラー処理ルーチンで使用したいと思いますので、単純に、Closeするだけにします。

皆さん、ご回答、どうもありがとうございました。

補足日時:2002/09/19 09:02
    • good
    • 1

開いているブック名は下記で判ります。

ご参考までに。
Sub Test01()
Dim wb As Workbook, wbname As String
For Each wb In Workbooks
wbname = wbname & wb.Name & vbCrLf
Next wb
MsgBox "現在開いているブックは、" & vbCrLf & wbname & vbCrLf & "です。"
End Sub
    • good
    • 1

きちんとやろうと思うと、#1の方のようにするべき?かなと思いますが、


VBでは、Close でエラーは発生しませんので、#2の方の方法でいいと思います。
プログラムとして、それに頼るのがいいかどうかは別ですが。

この回答への補足

>プログラムとして、それに頼るのがいいかどうかは別ですが。

そうなんです。
そこで悩んでしまうんです...

補足日時:2002/09/17 19:43
    • good
    • 0

Closeの引数を省略すると閉じていないファイルをすべて閉じます

この回答への補足

この場合、ファイルが開かれていなくても、エラーは発生しないのでしょうか?

補足日時:2002/09/17 18:09
    • good
    • 0

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

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


おすすめ情報

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