[[20190626235254]] 『ダブルクリックとshell,runの違い』(高橋) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ダブルクリックとshell,runの違い』(高橋)

VBAで外部のアプリケーションを操作することを試みております。
AAA.exeをダブルクリックで起動すると正常に起動します。
しかしrunやshellで起動するとエラーを吐きます。
エラー内容は440エラーでAAA.exeがサーバーのデータを使って製品情報を管理しているソフトであることが原因かとは思っております。

質問としてはrunやshellで起動することとダブルクリックで起動することの差はなんでしょうか。

作成した処理は以下の通りです。

sub test()

With CreateObject("Wscript.Shell")

    .Run "(略)\AAA.exe", 5
End With

end sub

sub test2)

Call Shell("(略)\AAA.exe", vbNormalFocus)

end sub

の2つです。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


 解決するかわからないが。
 Wscript.Shellの方で
 .CurrentDirectory
 を使って実行ファイルのあるフォルダをカレントフォルダにしてから実行してはどうだろうか?
(ねむねむ) 2019/06/27(木) 09:08

440エラーが出るとなると、セキュリティ関係で抑止されているかもです。 対象のアプリは管理者権限で動作していませんか? アプリを右クリックして、プロパティを調べてみてください。(または、ショートカットがあるならそちら)

ダブルクリックだと、アプリに指定された権限で実行されますが、マクロからだとExcelの持つ権限(デフォルトは管理権限なし)で実行されます。 新規にショートカットを作成し、Excel.exeのフルパスと、引数にブックのフルパスを指定。 これに管理権限を付けてみてください。 管理権限付きで開いて実行するとどうなるでしょうか。
(???) 2019/06/27(木) 09:57


カレントディレクトリを移動させてから実行したら無事ダブルクリックと同様に起動いたしました。
管理者権限の方は残念ながら管理者権限を持っておらず確認できませんでした。
(対象のアプリも管理者権限では起動しておりません。)

ネットワークドライブにあってカレントドライブが異なったのが原因・・・なのですかね。
ねむねむ様、???様 回答ありがとうございます。

(高橋) 2019/06/27(木) 12:33


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.