• 締切済み

いつもお世話になっています。

いつもお世話になっています。 VBAの記述で分からないところがあり、質問いたします。 次のようなメソッドを実行しています。 Call CreateObject("WScript.Shell").Run("explorer.exe /root, strFolderPath", 1, False) Call CreateObject("WScript.Shell").Exec("explorer.exe /root, strFolderPath") どちらも、実行すると目的のフォルダを表示してくれます。当該フォルダはネットワーク上にあるので、strFolderPathは \\PC_Name\SharedFolder のような記述になっています。 しかし、そのフォルダにあるファイルを右クリックすると、数十秒経過しないとショートカットメニューが表示されません。応答が極端に悪くなるのです。 一度応答が帰ってくれば、その後は普通の応答速度で処理できます。  どうしてこのような現象が起きるのでしょうか? また、解決(回避)する方法をご教授いただければ幸いです。 よろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

間違っているかもしれませんが Call CreateObject("WScript.Shell").Run("explorer.exe /root, strFolderPath", 1, False) は Sub test01() strFolderPath = "C:\Documents and Settings\" Call CreateObject("WScript.Shell").Run("explorer.exe /root, " & strFolderPath, 1, False) ・・ のような書き方になるのfではないですか。

youchang-
質問者

補足

ご回答ありがとうございます。 ご指摘通りです。 私の記述した構文では、正しくは動作しない内容でした。 趣旨に影響が無いと思い、勝手な加工をしてしまいました。 すみません。 imogasiさんの環境では、エクスプローラー上の任意のファイルのショートカットメニューを表示するのに、どれくらいの時間がかかりますか? 直接エクスプローラーを起動してショートカットメニューを表示するのと比較してどうでしょうか? 引き続きご対応下される助かります。 よろしくお願いします。

回答No.1

>\\PC_Name\SharedFolder の「PC_Name」について これを名前でなくIPアドレスに変えてと、、、 --------------------------------- 1回目の実行速度が改善される場合 --------------------------------- 名前解決に時間がかかっているのでしょう。 DNSサーバを ※利用していないのであれば、これはどうしようもないかも知れません。 ※利用しているのであれば、DNSサーバにその端末からIPアドレスを引けるように登録してあげましょう。 (環境が不明なので何とも言えません。) --------------------------------- 1回目の実行速度が改善されない場合 --------------------------------- 画面が多いとか、コントロールが多いとか、単に重たいアプリなのでしょう。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25226&forum=7 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=20388&forum=7 あたりが参考になるかも知れません。

youchang-
質問者

補足

ご回答ありがとうございます。 ご指摘のDNSについて、検証しました。 名前解決は正しく為されています。 IP指定、コンピュータ指定のどちらも、エクスプローラーが表示されるのに1秒程度と問題ない反応をしていますが、その中の任意のファイルを選択してショートカットメニューを表示しようとすると十数秒かかってしまいます。 1050YENさんの環境で、上記メソッドを実行した場合の応答速度は、いかがですか? 参考にお知らせくだされば幸いです。 引き続きお力添えください。 よろしくお願いします。

関連するQ&A