Excel VBA:外部アプリケーションの起動方法|Shell関数の使い方

Excel VBAでShell関数を使い、他のアプリケーションを起動する方法を掲載しています。


Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

Excelのシートにコマンドボタンを配置し、ボタンをクリックするとメモ帳やペイントなどのアプリを起動させることができれば便利です。

アプリを起動するにはShell関数を使用します。

Shell関数の構文:

Shell(pathname[,windowstyle])

  • pathname:実行するアプリ名をドライブとフォルダ名を付けたパスで指定します。
  • windowstyle:(省略可能)実行時のウィンドウ形式を指定します。

windowstyleで使用する定数の一覧表

定数 内容
vbHide フォーカスがあり、非表示のウィンドウ
vbNormalFocus フォーカスがあり、元のサイズと位置に復元するウィンドウ
vbMinimizedFocus フォーカスがあり、最小化したウィンドウ
vbMaximizedFocus フォーカスがあり、最大化したウィンドウ
vbNormalNoFocus フォーカスがなく、元のサイズと位置に復元するウィンドウ
現在のアクティブウィンドウは、アクティブのままです
vbMinimizedNoFocus フォーカスがなく、最小化したウィンドウ
現在のアクティブウィンドウは、アクティブのままです

同じShell関数を使用する「他のソフト(メモ帳)を制御する」も掲載していますので、参考にしてください。





外部アプリケーションを起動するVBA

Excel VBA シートコード

作成したExDoShellプロシージャの説明

  1. 「On Error GoTo」でエラーが発生した場合、指定したラベル位置にジャンプします。
  2. 電卓(CALC.EXE)を起動します。
  3. Excel(EXCEL.EXE)を起動します。
  4. Outlook Express(msimn.exe)を起動します。
  5. Range指定したセルに入力されているアプリを起動します。
  6. エラーラベル:「実行できませんでした。」とエラー内容を表示します。
Option Explicit

Private Sub ExDoShell()
    Dim ret As Long
    
On Error GoTo ErrEnd
    '電卓の起動
    ret = Shell("C:\WINDOWS\SYSTEM32\CALC.EXE", vbNormalFocus)
        
    'Excelの起動
    ret = Shell("C:\Program Files\Microsoft Office\Office10\EXCEL.EXE", vbNormalFocus)
        
    'Outlook Expressを最大化ウィンドウで起動
    ret = Shell("C:\Program Files\Outlook Express\msimn.exe", vbMaximizedFocus)
        
    'セルに入力されているソフトの起動
    ret = Shell(Range("B8"), vbNormalFocus)
        
    Exit Sub
ErrEnd:
    MsgBox "実行できませんでした。" & vbCrLf & "エラー内容:" & Err.Description

End Sub

Private Sub CommandButton1_Click()
    ExDoShell

End Sub

Excel VBAの実行結果

電卓が起動した画面です。

Excel VBAで電卓が起動した画面
Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved