私が目指しているのは、他のユーザーが同じVBAマクロを実行していないかどうかを確認するために現在実行中のすべてのスクリプトのリストを取得することです。同じ時間(もしそうなら、コードなどを停止する、以下の質問のOPが望むものと同様)。これは、共有ワークブックのためのものです(私はそれがこのタイプの作業のために設計されていないことを学んだが、試してみる必要があります)。1人で同時にVBAマクロを実行できない(共有wkb)
https://stackoverflow.com/a/36116091/5947935
私はVBAで上記の解答仕事でコードを作成しようとしてきたが、それはVBSのことだと私はそれを避けたいようです。
私は専門家ではないので、Excel VBAでこれを動作させる方法を理解できません。私はそれが可能かどうかも分かりません。
私もこれを見つけました:VBA Getting program names and task ID of running processesこれはうまくいきますが、実行中のプロセスのみが表示されます。
どのように2つをマージするかはわかりません...またはWMIが正しい方法です。
何か助けていただければ幸いです。
私は間違っているかもしれませんが、私にとってはどちらも1台のワークステーションで実行されているスクリプトをチェックしているようです。 2人の異なるユーザーが共有ブックを開くと、vbaはそのマシンで実行されます。これがAccessの場合は単純でしょうが...クライアント/サーバー環境で実行しているとしますか?その場合は、次のいずれかの操作を行うことができます:(a)サーバー上に隠しファイルを作成し、スクリプトが開始すると、それを排他的に開く(ロックアウトする)。ファイルがロックされているかどうかをチェックするコードがあるかどうかを確認します。または、(b)ワークステーションのリスト(およびおそらくユーザー名)を含むファイルを作成して管理しようとすると、あまりにも多くの問題が発生する可能性があります。 –