• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルの2重に開いた場合の処理(エクセルVBA))

ファイルの2重に開いた場合の処理(エクセルVBA)

このQ&Aのポイント
  • エクセルVBAにおいて、複数のエクセルファイルを順に開きシート内容を更新する際、ファイルが2重に開かれてしまう現象が発生することがあります。この現象を回避する方法として、オプションを設定することができます。Read-onlyでファイルを開く場合や、ダイアログが表示される場合、適切なオプションを使用して処理することが重要です。
  • 2重に開かれているファイルの一覧をシートに保存し、後で処理を行うためには、Thisworkbookのシートに情報を保存することができます。また、2重に開かれたファイルの使用者名も取得することができます。
  • 2重に開かれたファイルのトラップ方法はいくつかありますが、Read-onlyで開く場合やダイアログが表示される場合に備えて、適切な対策を講じる必要があります。適切なオプションの設定やエラーハンドリングの使用を通じて、問題を解決することができます。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

補足です。#1 の参考URLを参考に関数を書きましたが、 Open strFULLPATH For Binary Access Write As #n ではなくて、 Open strFULLPATH For Binary Lock Write As #n とした方が今回の目的にはよりマッチしていると思います。

vba_minarai
質問者

補足

いつも、いつも、いつも丁寧なご指導有難う御座います。毎回毎回、新しいことを教えて頂き、恐縮いたします。マイクロソフトも色々と情報を提供し手いるのですね?与えられている情報が全く活用できていないことを、またもや、痛感いたしました。 ほんのちょっとのアレンジが大切である!もっともだと思いました。 本当に、本当に有難う御座います。 今後とも宜しくお願い致します。 お礼の点数を割り振ることしか出来ないことに、申し訳なく感じます。

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。KenKen_SP です。 > ファイルの2重で開くのトラップってどうすれば出来るのでしょうか? 【参考】MS サポートオンライン より [XL]他ユーザーが使用中のファイルを開く時任意のメッセージを表示する方法 http://support.microsoft.com/default.aspx?scid=kb;ja;402465 これを次のような関数にしてチェックします。 'ファイルが既に開かれているか確認する関数 Function FILE_OPENED(ByRef strFULLPATH As String) As Boolean      Dim n As Long   n = FreeFile   On Error Resume Next   Open strFULLPATH For Binary Access Write As #n   Close #n   If Err.Number > 0 Then     FILE_OPENED = True   End If   On Error GoTo 0 End Function 【使い方の例】 IF FILE_OPENED(.FoundFiles(iCount)) Then  Msgbox "ファイルは使用中です。" End IF とりあえず。

関連するQ&A