VBAからexeファイルをShell関数で呼び出して引数を渡す方法

標記のメモです。この方法は主に、「エクセルのセルの内容を、引数としてexeファイルに渡したい時」に使えるかと思います。VBAだけでは出来ないような処理をexeファイルにやらせましょう。

VBAでの引数の渡し方

VBAから引数付きで起動する際のサンプルコードです。

「shell」関数の第一引数に、「”パス 引数1 引数2 ・・・引数n”」って感じでexeファイルに引数を渡します。(パスの後ろを半角スペースを入れて引数を入れていく)

「shell」関数の第二引数は省略可能です。(なんか開いた後アクティブにするか、とかそんなん)

exe側の引数の取り出し方

↑のVBAのコードで引数を渡す為のexeファイルを作る方法。

C#

C#で引数を取り出す際のサンプルコードです。

例として、exeファイルを「”プログラムのパス 引数1 引数2“,1」で呼び出すと、「プログラムのパス」「引数1」「引数2」と書かれたメッセージボックス3回表示されます。

C

Cの場合は、main関数の引数に指定するだけです。(↓こんな感じ)

このコードで作ったexeファイルの名前を「test.exe」として、VBAから「Shell “c:\test.exe “会社” 辞めたい”, 1」とすると実行結果は以下の様なDOS窓が表示されます。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク