2011年12月23日金曜日

[ExcelVBA] Shell関数


■構文
Shell(pathname[,windowstyle])

■説明
他のアプリケーションを起動する。実行が完了するとプロセスIDを返す。ただし、問題が発生した場合は0を返す。
第一引数:アプリケーションのパス。
第二引数:(省略可能)実行するプログラムのウィンドウ形式に対応する数字を指定。省略時、フォーカスを持った状態で最小化となる。
定数内容
vbHide0フォーカス○、非表示
vbNormalFocus1フォーカス○、元のサイズと位置に復元
vbMinimizedFocus2フォーカス○、最小化
vbMaximizedFocus3フォーカス○、最大化
vbNormalNoFocus4フォーカス×、元のサイズと位置に復元
vbMinimiziedNoFocus6フォーカス×、最小化

■サンプルコード
  1. Option Explicit  
  2.   
  3. Sub SampleCode()  
  4.     'メモ帳を実行(パスが通っているため、アプリ名だけで実行できる)  
  5.     Debug.Print Shell("notepad.exe", vbNormalFocus)  
  6.       
  7.     '電卓を実行(パスが通っているため、アプリ名だけで実行できる)  
  8.     Debug.Print Shell("calc.exe", vbNormalFocus)  
  9.       
  10.     'pdfを開く(パスが通っていないため、フルパスを指定。ファイルを開くためアプリの引数にファイルパスを指定)  
  11.     Debug.Print Shell("C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe C:\test.pdf")  
  12. End Sub  

0 件のコメント: