Shell 関数

実行可能プログラムを実行し、成功した場合はプログラムのタスク ID を表す Variant (Double) の値を返し、失敗した場合は 0 を返します。

構文

Shell(pathname, [ windowstyle ])

Shell 関数の構文には、以下の名前付き引数があります。

パーツ 説明
pathname 必須。Variant (String)。 実行するプログラムの名前と必要な引数またはコマンド ライン スイッチ。ディレクトリまたはフォルダーとドライブを含めることができます。 Macintosh では、MacID 関数を使用して、アプリケーションの名前ではなくシグネチャを指定できます。 次の例では、Microsoft Word のシグネチャを使用しています。Shell MacID("MSWD")
windowstyle 省略可能。 プログラムを実行するウィンドウのスタイルに対応する Variant (Integer)。 windowstyle の指定を省略すると、プログラムがフォーカスを持った状態で最小化されて開始されます。 Macintosh (System 7.0 以降) の場合、 windowstyle は、アプリケーションが実行時にフォーカスを取得するかどうかを決定するだけです。

windowstyle 名前付き引数の有効な値は次のとおりです。

定数 説明
vbHide 0 ウィンドウは非表示で、フォーカスは非表示ウィンドウに渡されます。 vbHide 定数は Macintosh プラットフォームでは適用されません。
vbNormalFocus 1 ウィンドウがフォーカスを持ち、元のサイズと位置に復元されます。
vbMinimizedFocus 2 ウィンドウがフォーカスを持ってアイコンとして表示されます。
vbMaximizedFocus 3 ウィンドウがフォーカスを持って最大化されます。
vbNormalNoFocus 4 ウィンドウは、最新のサイズと位置に復元されます。 現在アクティブなウィンドウはアクティブのままです。
vbMinimizedNoFocus 6 ウィンドウはアイコンとして表示されます。 現在アクティブなウィンドウはアクティブのままです。

解説

指定したファイルを Shell 関数で正常に実行できた場合、起動されたプログラムのタスク ID が返されます。 タスク ID は、実行中のプログラムを識別する一意の番号です。 指定したプログラムを Shell で起動できない場合、エラーが発生します。

Macintosh では、vbNormalFocusvbMinimizedFocusvbMaximizedFocus はすべてアプリケーションを手前に配置し、vbHidevbNoFocusvbMinimizeFocus はすべてアプリケーションを後ろに配置します。

注:

Shell 関数の既定では、他のプログラムが非同期に実行されます。 つまり、Shell で起動したプログラムが、Shell 関数の次のステートメントを実行するまでに完了しないことがあります。 プログラムの終了を待機するには、「シェル プロセスの終了のタイミングを決定する」を参照してください。

この例では、Shell 関数を使用して、ユーザーが指定したアプリケーションを実行します。 Macintosh では、既定のドライブ名は "HD" であり、パス名の各部分はバックスラッシュではなくコロンで区切られます。 同様に、\WINDOWS の代わりに Macintosh のフォルダーを指定します。

' Specifying 1 as the second argument opens the application in 
' normal size and gives it the focus.
Dim RetVal
RetVal = Shell("C:\WINDOWS\NOTEPAD.EXE", 1)    ' Open Notepad.

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。