• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでフリーソフトを起動する事は可能でしょうか?)

VBでフリーソフトを起動する方法とは?

このQ&Aのポイント
  • VBAを使用してフリーソフトを起動する方法について教えてください。
  • 特に、QR Code EditorというソフトをVBAで開く方法について教えてください。
  • 試した方法ではファイルが見つからずエラーになってしまいます。

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

  • ベストアンサー
  • gungnir7
  • ベストアンサー率43% (1124/2579)
回答No.1

ご質問者様に絶対に不足しておられるのはpathという概念ではないでしょうか。 無条件にファイル名だけで動かせるのはpathを通してあるディレクトリだけです。 このpathは環境変数より確認できます。C:\windowsなどが該当します。 それ以外のファイルはフルパスが必要になります。当然、この場合もフルパスでなければなりません。 rc = Shell("C:\Program Files (x86)\Psytec\QR Code Editor\PsQREdit.exe",vbNormalFocus) とすれば動きます。 このソフトが必ずここにあればいいのですが、入れる人によって場所が違うでしょうから、 普通はenv.datなどのデータファイルに必要な情報を保存するようにします。 例えばこのファイルのフルパスを アプリ起動時に読み込んで、Edit_filepathとかの変数に記憶しておけば rc=Shell(Edit_filepath,vbNormalFocus) とかなりスマートにできるわけです。

smncqrcdka
質問者

お礼

notepad.exeが起動するのは、 「pathを通してあるディレクトリ」だからのようですね。 仰る通り、フルパスにしたら起動しました。 [env.dat][Edit_filepath]という単語についてよく理解できなかったので勉強します。ありがとうございました。

その他の回答 (1)

  • ss-ak
  • ベストアンサー率58% (23/39)
回答No.2

rc = Shell("PsQREdit.exe", vbNormalFocus)   ↓ rc = Shell("""C:\Program Files (x86)\Psytec\QR Code Editor\PsQREdit.exe""", vbNormalFocus) で、動くのではないかと思います。 notepad.exeの場合は、path環境変数に、実行ファイルの置かれているパスが入っているため、フルパスを省略できますが、そうでない場合は、フルパス指定が必要。 その際に、フルパスに半角スペースが含まれる場合は、上記の通り、ダブルクォートで囲む必要があります。 参考情報の例: http://support.microsoft.com/kb/417089/ja

smncqrcdka
質問者

お礼

ご回答ありがとうございます。

関連するQ&A