• ベストアンサー

ファイルが開かれているかどうかの判断

ある処理を行ってその結果をテキスト形(メモ帳など)に出力するもの作成しています。 EXCELだと FILENO = FreeFile Open パス名 For Output As #FILENO これでもし指定のファイルがすでに開いていたらエラーになってエラールーチンで拾えるのですが テキスト形(メモ帳など)のときだとエラーになりません。 どう対処すればいいのですか?

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

  • ベストアンサー
回答No.1

メモ帳などは、保存を実行したときにファイルオープン&書き込みをし、保存の処理が終了したらファイルのクローズをしているのだと思います。なので、VB の通常の Open では、メモ帳などで開いているかどうかを識別することはできないと思います。 極端な話、VB でファイルを作成した後( Close 後 )で、メモ帳を使用して新規作成したファイルを、VB で作成したファイルと同じファイルで上書き保存しようとしたときに、どうしようもないのと同じと思います。 対応策としては、VB でのファイル保存後、読み取り専用にするくらいでしょうか。

その他の回答 (2)

  • -boya-
  • ベストアンサー率35% (176/494)
回答No.3

実際にやったことが無いので成功するか分かりませんが、、、 APIを使ってみては如何でしょうか? (1)EnumWindow:開いているウィンドウを列挙する (2)GetWindowText:ウィンドウのタイトルを取得する (3)FindWindow:ウィンドウのタイトルからハンドルがあるか確認する (1)+(2)もしくは(3)で試してみては如何ですか? 例を書くと長くなるので、、、

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

排他で開く。

関連するQ&A