教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA その他操作】他のアプリケーションを起動する(Shell)にはどうすればいいの?教えて!

構文

構文は以下の通りです。

Shell(ファイルパス, [スタイル])

解説

Shell関数は、ExcelVBAから他の外部プログラムを実行します。

引数 指定 内容
ファイルパス 必須 実行する外部プログラムのファイルパスを指定します。文字列として指定します。以下に参考でアプリケーションのパスを幾つか紹介します。
スタイル 省略可 実行するウィンドウのスタイルを指定します。指定しない場合は、外部プログラムのデフォルトのスタイルで実行されます。設定値を以下で紹介します。

アプリケーションパスを幾つか紹介します。

アプリケーション パス
メモ帳 C:\Windows\System32\notepad.exe
電卓 C:\Windows\System32\calc.exe
エクスプローラ C:\Windows\explorer.exe
IE C:\Program Files\internet explorer\iexplore.exe
Word C:\Program Files (x86)\Microsoft Office\Office16\WINWORD.EXE
PowerPoint C:\Program Files (x86)\Microsoft Office\Office16\POWERPNT.EXE
Outlook C:\Program Files (x86)\Microsoft Office\Office16\OUTLOOK.EXE

スタイルには以下の設定値が指定できます。

内容
0 隠された状態で実行します。
1 通常のウィンドウで実行します。(デフォルト)
2 最小化された状態で実行します。
3 最大化された状態で実行します。

使用例

Shell "C:\Windows\System32\notepad.exe"
Shell "C:\Windows\System32\calc.exe"

使い方

具体的な使い方を紹介します。

1.外部プログラムの実行

Shell "C:\path\to\program.exe"

上記の例では、C:\path\to\program.exeというパスの外部プログラムが実行されます。

2.ウィンドウのスタイルの指定

Shell "C:\path\to\program.exe", 1

第2引数に数値を指定することで、実行するウィンドウのスタイルを変更できます。

3.外部プログラムに引数を渡す

Shell "C:\path\to\program.exe argument1 argument2"

上記の例では、program.exeにargument1とargument2という引数を渡して実行します。

プログラミング例

以下に、プログラミング例を紹介します。

Sub RunExternalProgram()
    Dim programPath As String
    Dim arguments As String
    Dim windowStyle As Integer
    ' 外部プログラムのパス
    programPath = "C:\path\to\program.exe"
    ' 引数
    arguments = "argument1 argument2"
    ' ウィンドウスタイル
    windowStyle = 1
    ' Shellを使って外部プログラムを実行します。
    Shell programPath & " " & arguments, windowStyle
End Sub

上記のコードでは、`programPath`に外部プログラムのパスを、`arguments`に引数を、`windowStyle`にウィンドウのスタイルを指定しています。Shellを使って外部プログラムを実行しています。

 まとめ

Shell関数を使用することで、VBAから外部プログラムを簡単に実行することができます。是非活用してください。