Joeは、特定のブックを開いているユーザーをマクロで判別する方法があるかどうかを尋ねました。彼はWriteReservedByプロパティの使用を検討しましたが、必要な情報が含まれていないようです。

残念ながら、VBAからこの情報を特定する方法はありません。アクセスできないだけです。 WriteReservedByプロパティは、誰がファイルを開いているかを示しません。パスワードを使用してブックを保存したユーザーが表示されます。つまり、誰かがワークブックを変更するためのパスワードを持つオプションを付けて保存すると、ファイルは「WriteReserved」になります。 WriteReservedByプロパティには、ファイルをWriteReserved状態で保存した人の名前が含まれています。

答えを知る必要があるだけの場合(誰がファイルを開いているかについて)

定期的に、開いているファイル名のリストを収集し、ネットワーク管理者にそれらを開いている人を教えてもらうのが最も簡単です。このような情報はネットワーク上で維持され、管理者がアクセスできます。

別の考えられる解決策は、ファイルを開いている人の名前を含む一時ファイルをディスクに書き込む各ブックにAutoOpenマクロを追加することです。マクロは、一時ファイルを開くだけでなく、すでに開いている一時ファイルなどのエラー状態を処理する必要があります。一時ファイルは、他のマクロからアクセスして、含まれている名前を確認できます。

次のサイトにあるマクロは、特定のブックを開いているユーザーを見つけるための別の解決策を提供する場合があります。

https://bizintelsolutions.wordpress.com/2015/01/26/who-is-in-excel-xlsx-file/

答えを保持する可能性のある追加の場所は、VBNetサイトです。このページの記事には、必要な情報に適応できるコードが含まれています:

http://vbnet.mvps.org/index.html?code/network/netfileenum.htm

コードは古いバージョンのWindowsでのみ機能することに注意してください。 Windows 7までのバージョンでは問題なく動作するはずですが、それ以降のバージョンではソフトに踏みます。環境で動作することを確認するために、完全にテストする必要があります。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(9511)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。