注: Microsoft Jet Expression Service がサンドボックス モードで実行されている場合 (安全でない可能性がある式の評価は行われません)、このトピックで説明する関数、メソッド、オブジェクト、またはプロパティは無効です。 サンドボックス モードの詳細については、ヘルプで "サンドボックス モード" を検索してください。
実行可能プログラムを実行し、成功した場合はプログラムのタスク ID を示す Variant (Double) を返し、それ以外の場合は 0 を返します。
構文
Shell( pathname [, windowstyle ] )
Shell 関数の構文には、次の引数があります。
引数 |
説明 |
pathname |
必須。 Variant (String)。 実行するプログラムの名前と、必要な引数または コマンド ライン スイッチ。ディレクトリまたはフォルダーとドライブを含めることができます。 Macintosh では、 MacID 関数を使用して、名前の代わりにアプリケーションの署名を指定できます。 次の例では、Microsoft Word の署名を使用します: Shell MacID("MSWD") |
windowstyle |
省略可能。 プログラムを実行するウィンドウのスタイルに対応する Variant (Integer)。 windowstyle を省略すると、プログラムはフォーカス付きの最小化表示で起動されます。 Macintosh (7.0 以降のシステム) の場合、windowstyle は、アプリケーションの実行時にアプリケーションにフォーカスを移動するかどうかのみを指定します。 |
windowstyle 名前付き引数には次の値があります。
定数 |
値 |
説明 |
vbHide |
0 |
ウィンドウは非表示で、フォーカスは非表示ウィンドウに渡されます。 vbHide 定数は Macintosh プラットフォームでは適用されません。 |
vbNormalFocus |
1 |
ウィンドウにフォーカスが移動し、元のサイズと位置に復元されます。 |
vbMinimizedFocus |
2 |
ウィンドウはフォーカス付きでアイコンとして表示されます。 |
vbMaximizedFocus |
3 |
ウィンドウはフォーカス付きで最大化表示されます。 |
vbNormalNoFocus |
4 |
ウィンドウの最近のサイズと位置が復元されます。 現在アクティブなウィンドウはアクティブなままです。 |
vbMinimizedNoFocus |
6 |
ウィンドウはアイコンとして表示されます。 現在アクティブなウィンドウはアクティブなままです。 |
解説
指定したファイルを Shell 関数で正常に実行できた場合、起動されたプログラムのタスク ID が返されます。 タスク ID は、実行中のプログラムを識別する一意の番号です。 指定したプログラムを Shell で起動できない場合、エラーが発生します。
Macintosh では、vbNormalFocus、vbMinimizedFocus、vbMaximizedFocus のいずれを使用してもアプリケーションはフォアグラウンドに移動されます。また、vbHide、vbNoFocus、vbMinimizeFocus のいずれを使用してもアプリケーションはバックグラウンドに移動されます。
注: Shell 関数の既定では、他のプログラムが非同期に実行されます。 つまり、Shell で起動したプログラムが、Shell 関数の次のステートメントを実行するまでに完了しないことがあります。
例
注: 次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。
この例では、Shell 関数を使用して、ユーザーが指定したアプリケーションを実行します。 Macintosh では、"HD" が既定のドライブ名で、パス名の各部分は円記号ではなくコロンで区切られます。 同様に、\Windows ではなく、Macintosh フォルダーを指定します。
' Specifying 1 as the second argument
' opens the application in normal size and ' gives it the focus. Dim RetVal ' Run Calculator. RetVal = Shell("C:\WINDOWS\CALC.EXE", 1)