即効テクニック

ファイル操作・他アプリケーションとの連携

電卓やメモ帳を起動する

(Access 2000/2002)
実行可能プログラムを実行するShell関数を使って、電卓やメモ帳を起動します。
電卓を起動するプロシージャは次のとおりです。

Sub Sample()
    Dim ReturnValue
    
    ReturnValue = Shell("CALC.EXE", 1)
    AppActivate ReturnValue

End Sub

AppActivateステートメントは、アプリケーションウィンドウをアクティブにします。
メモ帳を起動するプロシージャは次のとおりです。

Sub Sample()
    Dim ReturnValue
    
    ReturnValue = Shell("NOTEPAD.EXE", 1)
    AppActivate ReturnValue

End Sub

Shell関数とSendKeysステートメントを使って、数値の加算を行ってから電卓アプリケーションを終了する、といった処理も可能です(ヘルプより)。

Sub Sample()
 Dim ReturnValue, I

 ReturnValue = Shell("CALC.EXE", 1) ' 電卓を実行します。
 AppActivate ReturnValue            ' 電卓をアクティブにします。

 For I = 1 To 20                    ' ループ カウンタを設定します。
   SendKeys I & "{+}", True         ' 電卓にキー コードを転送して、
 Next I                             ' I の値に 1 を加算します。

SendKeys "=", True                  ' 和を求めます。
SendKeys "%{F4}", True              ' Alt+F4キーを転送して電卓を終了します。

End Sub

Shell関数の構文は次のとおりです。

<構文> Shell(pathname[,windowstyle])

pathname
必ず指定します。
バリアント型(内部処理形式StringのVariant)の値を指定します。実行するプログラム名と必要な引数名またはコマンドラインのスイッチを指定します。また、フォルダ、またはドライブを含めて指定できます。

windowstyle
省略可能です。実行するプログラムのウィンドウの形式に対応するバリアント型(内部処理形式IntegerのVariant)の値を指定します。引数windowstyleを省略すると、プログラムはフォーカスを持った状態で最小化され、実行を開始します。

名前付き引数windowstyleには、次の値を指定します。

定数       値  内容 
vbHide       0  フォーカスを持ち、非表示にされるウィンドウ
vbNormalFocus   1  フォーカスを持ち、元のサイズと位置に復元されるウィンドウ
vbMinimizedFocus  2  フォーカスを持ち、最小化表示されるウィンドウ
vbMaximizedFocus  3  フォーカスを持ち、最大化表示されるウィンドウ
vbNormalNoFocus  4  最後にウィンドウを閉じたときのサイズと位置に復元される
            フォーカスを持たないウィンドウ。現在アクティブな
            ウィンドウは、アクティブのままです。 
vbMinimizedNoFocus 6  最小化表示されるフォーカスを持たないウィンドウ。
            現在アクティブなウィンドウは、アクティブのままです。