2011年6月15日水曜日

他のアプリケーションの起動

Calc マクロから、電卓やブラウザー等の、他のアプリケーションを起動
するには Shell 関数を使用する。起動時のウィンドウのスタイルや、起動
したアプリケーションを待機するか否かなどのも行うことができる。
書式は下記の通り :
  
   Shell(Pathname, [Windowstyle] [, Parameter [, WaitOnReturn]])
  
Pathname は起動するアプリケーションの絶対パス。
Windowstyle には起動するアプリケーションのウィンドウスタイルを設定する。
指定する値は下記の通り。省略した場合は 1 のようである :
  
   0 : ウィンドウを非表示にして、フォーカスを移動
   1 : ウィンドウを標準サイズにして、フォーカスを移動
   2 : ウィンドウを最小化 (アイコン化) して、フォーカスを移動
   3 : ウィンドウを最大表示にして、フォーカスを移動
   4 : ウィンドウを標準サイズにするが、フォーカスは移動しない
   6 : ウィンドウを最小化するが、フォーカスはアクティブウィンドウに留める
   10 : 全画面表示にする
  
Parameter には、起動するアプリケーションに渡すコマンド行パラメータを
示す文字列を指定する。
WaitOnReturn には、起動したアプリケーションが終了するまで LibreOffice
の全タスクを待機するか否かをブール値を指定する。True を指定した場合
は待機し、False を指定した場合は待機せずに起動した後、マクロ次の命令
に制御が戻る。省略した場合は、False とみなされる。
  
以下、サンプルコードを記す :
  
Sub ExampleShellFunction()
       Shell("C:\Windows\notepad.exe", 1, "D:\Temp\sample.txt", True)
       Msgbox("終わったよ!!")
End Sub
  
上記サンプルの場合、「メモ帳」で D:\Temp\sample.txt というファイルを
標準のウィンドウサイズで開き、メモ帳を閉じたところで、「終わったよ!!」
というメッセージがひょうじされる。つまり、起動したメモ帳が終了するまで、
次の命令に制御がうつるのを待機していたことになる。

0 件のコメント:

コメントを投稿