• ベストアンサー

VBA 指定したファイルを他のユーザが使用しているかどうかを取得するプロパティ

ExcelVABで指定したファイルを他のユーザが使用しているかどうかを取得するプロパティがあれば使用したいと思っています。 ご存知の方教えてください。 バージョンはExcel2003です。 ちなみにEXCEL5.0では、そのようなプロパティはないとのことでした。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。  ・他のユーザが使用しているかどうかを取得するプロパティ 新しいオブジェクトが出来て、そういうプロパティが取れるようになるのかもしれませんが、私は知りません。しかし、少なくともOffice 2003 までの VBAでは、それは、「プロパティ」と聞かれても、思い当たらないです。 >EXCEL5.0では、そのようなプロパティはないとのことでした。 なぜ、Ver.5 なのか分かりませんが、97以前の問題は、不問に付すという暗黙のルールがあるかと思います。 ただ、一応、Ver.5以下は、今、探した範囲では見つかりませんが、それらのバージョンは、詳しいわけではないからです。プロパティで、今のバージョンにないものが、前のバージョンにあるとは思えません。もともと、それ自体は、プロパティではないと思います。 通常、VBAでは、このようにして、共有ファイルに対して、編集可能かを取ります。つまり、使用中かどうかが分かります。 On Error Resume Next Open [ファイル名] For Binary Lock Read Write As #Fno これで、Err.Number を取れば、ブックの状態が分かります。 Err.Number =0 で、編集可 Err.Number =70 で、他の人が使用中 Err.Number =32 で、ブックのトラブル

hideto_urata
質問者

お礼

うまくトラップできました! ありがとうございました。

hideto_urata
質問者

補足

>なぜ、Ver.5 なのか分かりませんが、 以下のマイクロソフトのドキュメントに記載がありました。 ちなみにこの方法ではうまくいかなかったです。 http://support.microsoft.com/kb/402465/ja 教えていただいた「Lock Read Write」を試してみます。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

>使用している の定義は何ですか? 開いただけ? 更新した? 開いただけなら何の記録もファイルに残りませんから、誰が開いたかを取得するのはできないでしょう。 最終更新者なら  ThisWorkBook.BuiltinDocumentProperties("Last Author") で取得可能ですが、そのような質問ではなさそうですね…

関連するQ&A