2011年12月23日金曜日

[ExcelVBA] Shell関数


■構文
Shell(pathname[,windowstyle])

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

■サンプルコード
Option Explicit

Sub SampleCode()
    'メモ帳を実行(パスが通っているため、アプリ名だけで実行できる)
    Debug.Print Shell("notepad.exe", vbNormalFocus)
    
    '電卓を実行(パスが通っているため、アプリ名だけで実行できる)
    Debug.Print Shell("calc.exe", vbNormalFocus)
    
    'pdfを開く(パスが通っていないため、フルパスを指定。ファイルを開くためアプリの引数にファイルパスを指定)
    Debug.Print Shell("C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe C:\test.pdf")
End Sub

0 件のコメント: