注
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 (System 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)