Shell関数
Shell関数は、VBA関数の中でWindows・その他の関数に分類される関数です。
目次
Shell関数とは
Shell関数は、実行可能プログラムを実行し、実行が完了するとプログラムのタスク ID を示すバリアント型 (内部処理形式 Double の Variant) の値を返します。プログラムの実行に問題が発生した場合は、0 を返します。
構文 | Shell(pathname[,windowstyle]) | |
---|---|---|
引数 | 省略 | 説明 |
pathname | × | バリアント型 (内部処理形式 String の Variant) の値を指定します。実行するプログラム名と必要な引数名またはコマンド ラインのスイッチを指定します。また、フォルダ、またはドライブを含めて指定できます。Macintosh では、MacID 関数を使ってアプリケーションの名前の代わりにシグネチャを指定できます。次の例は、Microsoft Word のシグネチャを使用したものです。Shell MacID("MSWD") |
windowstyle | ● | 実行するプログラムのウィンドウの形式に対応するバリアント型 (内部処理形式 Integer の Variant) の値を指定します。引数 windowstyle を省略すると、プログラムはフォーカスを持った状態で最小化され、実行を開始します。Macintosh (System 7.0 以降) では、windowstyle は、アプリケーションの実行中に、そのアプリケーションがフォーカスを取得できるかどうかを指定するだけです。 |
引数windowstyle
定数 | 値 | 説明 |
---|---|---|
vbHide | 0 | フォーカスを持ち、非表示にされるウィンドウ。定数 vbHide は、Macintosh では使用できません。 |
vbNormalFocus | 1 | フォーカスを持ち、元のサイズと位置に復元されるウィンドウ |
vbMinimizedFocus | 2 | フォーカスを持ち、最小化表示されるウィンドウ |
vbMaximizedFocus | 3 | フォーカスを持ち、最大化表示されるウィンドウ |
vbNormalNoFocus | 4 | フォーカスを持ち、最大化表示されるウィンドウ |
vbMinimizedNoFocus | 6 | 最小化表示されるフォーカスを持たないウィンドウ。現在アクティブなウィンドウは、アクティブのままです。 |
指定したプログラムが問題なく実行できると、プログラムのタスク ID が返されます。タスク ID は、実行中のプログラムを識別する重複しない番号です。指定されたプログラムが実行できないと、エラーが発生します。Microsoft Windows 上で、MacID 関数を使用するとエラーが発生します。
Macintosh では、vbNormalFocus、vbMinimizedFocus、vbMaximizedFocus はすべてアプリケーションをフォアグラウンドで実行し、vbHide、vbNoFocus、vbMinimizeFocus はすべてアプリケーションをバックグラウンドで実行します。
メモ 既定の設定では、Shell 関数はプログラムを非同期的に実行します。したがって、Shell 関数を使用して実行を開始したプログラムが終了しなくても、Shell 関数の次のステートメントは実行されます。
Shell関数のサンプルコード
次の例は、Shell 関数を使って、ユーザーが指定したアプリケーションを実行します。Macintosh でファイル名が変わってしまったアプリケーションを実行するには、MacID 関数を使用すると確実です。Macintosh では、既定のドライブ名は "HD:" です。パス名は、円記号 (\) ではなくコロン (:) で区切ります。また、Windows フォルダの代わりに Macintosh フォルダを指定します。
Sub Sample()
' Microsoft Windows では、2 番目の引数に 1 を指定すると、
' アプリケーションが通常のサイズで開かれ、そのアプリケーションに
' フォーカスが移ります。
Dim RetVal
RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' 電卓を実行します。
' Macintosh では、次のいずれのステートメントでも、Microsoft Excel を実行します。
RetVal = Shell("Microsoft Excel") ' ファイル名を指定します。
RetVal = Shell(MacID("XCEL")) ' シグネチャを指定します。
End Sub
実行結果
解説
Windows・その他の関数一覧
関数名 | 内容 |
---|---|
Command | 起動時に指定されたコマンドラインの引数を返します。 |
CreateObject | ActiveXオブジェクトへの参照を作成して返します。 |
DoEvents | VBAからWindowsにイベントの処理を依頼します。 |
Environ | OSの環境変数に割り当てられた名前を返します。 |
Environ$ | 指定した数番目の環境変数を返します。 |
GetAllSettings | アプリケーションの項目からすべてのキー設定に対応する値リストを返します。 |
GetObject | ファイルから取得したActiveXオブジェクトへの参照を返します。 |
GetSetting | アプリケーションの項目からキー設定値を返します。 |
IMEStatus | MS-IME(日本語入力システム)の現在の状態を返します。 |
QBColor | 指定した番号に対応するRGBコードを返します。 |
RGB | RGBの値を色で指定します。 |
Shell | 指定したプログラムを実行します。 |