構文
構文は以下の通りです。
Shell(パス名, 窓のスタイル)
解説
Shell関数は、外部プログラムを実行するために使います。パス名は、実行したいプログラムのファイルパスを文字列で指定します。例えば、メモ帳を開くには"notepad.exe"という文字列を指定します。窓のスタイルは、ウィンドウが表示されるスタイルを指定します。主なスタイルは以下の通りです。
【窓のスタイル】
定数 | 内容 |
vbNormalFocus | 通常のウィンドウを表示(既定値) |
vbMinimizedFocus | 最小化した状態でウィンドウを表示 |
vbMaximizedFocus | 最大化した状態でウィンドウを表示 |
プログラミング例
具体的なプログラミング例を紹介します。
Sub メモ帳を開く()
' Shell関数でメモ帳を開く
Dim プロセスID As Long
プロセスID = Shell("notepad.exe", vbNormalFocus)
' 結果を表示
If プロセスID > 0 Then
MsgBox "メモ帳を開きました。プロセスIDは " & プロセスID & " です。"
Else
MsgBox "メモ帳の起動に失敗しました。"
End If
End Sub
' Shell関数でメモ帳を開く
Dim プロセスID As Long
プロセスID = Shell("notepad.exe", vbNormalFocus)
' 結果を表示
If プロセスID > 0 Then
MsgBox "メモ帳を開きました。プロセスIDは " & プロセスID & " です。"
Else
MsgBox "メモ帳の起動に失敗しました。"
End If
End Sub
上記のプログラムでは、Shell関数を使ってメモ帳を開き、プロセスIDを変数プロセスIDに格納しています。プロセスIDが0より大きい場合はメモ帳の起動に成功し、そうでない場合は失敗しています。このようにプロセスIDを確認することで、外部プログラムの起動の成否を判断できます。vbNormalFocusを指定しているため、メモ帳は通常のウィンドウで開かれます。
まとめ
Shell関数は、外部プログラムをVBAから実行するのに非常に便利な関数です。プログラムのパスとウィンドウのスタイルを指定するだけで簡単に起動できます。実行されたプログラムのプロセスIDを取得することで、プログラムが正しく起動したかを確認することも可能です。