【EXCEL VBA | Shell関数】VBAから他のアプリを起動する

スポンサーリンク

スポンサーリンク


ひらちんです。

今回は、VBAからEXCEL以外の他のアプリケーションを起動する方法を紹介します!

他のアプリケーションを起動するには、Shell関数を利用します。

Shell関数

構文

Shell( pathname [ ,windowstyle ] )

引数説明
pathname実行するプログラム名を指定
windowstyle省略可(省略すると"vbMinimizedForcus") 実行時のウィンドウの形式を指定

windowstyleに指定出来る定数

定数ないよう
vbHide0フォーカスを持ち、非表示にされるウィンドウ
vbNormalFocus1フォーカスを持ち、元のサイズと位置に復元されるウィンドウ
vbMinimizedFocus2フォーカスを持ち、最小化表示されるウィンドウ
vbMaximizedFocus3フォーカスを持ち、最大化表示されるウィンドウ
vbNormalNoFocus4最後にウィンドウを閉じたときのサイズと位置に復元されるフォーカスを持たないウィンドウ。現在アクティブなウィンドウは、アクティブのままです
vbMinimizedNoFocus6最小化表示されるフォーカスを持たないウィンドウ。現在アクティブなウィンドウは、アクティブのままです

Shell関数は、非同期実行のため、Shell関数が起動したプログラムが終了しなくてもVBAの次のステートメントは実行されていきます。


新規でメモ帳を起動する

では、サンプルを実行してみましょう!

Sub Sample()

    MsgBox "メモ帳を開きます。"

    Shell "Notepad.exe", 1
    
    MsgBox "メモ帳を開きました。"
    
End Sub

メモ帳を開いているのは、

Shell "Notepad.exe", 1

の部分です。

動画で分かると思いますが、メモ帳が開いてから、閉じていいないのに次の

MsgBox "メモ帳を開きました。"

の行に進んでいますね。

プログラムが終了してもメモ帳は勝手に閉じたりはしません。

すでにあるメモ帳を起動する

既存のメモ帳も名前を指定して開くことが出来ます。

例えば、

C:\ひらちんの部屋\Shell関数から開くメモサンプル.txt

というファイルを用意しておきます。

中身は次です。

これを呼び出すためには、次のようにします。

Sub Sample()

    Shell "Notepad.exe" & " " & "C:\ひらちんの部屋\Shell関数から開くメモサンプル.txt", 1
    
End Sub

実行したいプログラムの後に「" "」半角スペースを繋げて、その後に開きたいファイルのパスを指定しています。

コマンドラインで実行する時とおんなじですね。

このようにすると、

指定したファイルを開くことが出来ます。

ちなみに、

"Notepad.exe"

の部分ですが、メモ帳のnotepad.exeは、システムフォルダにありパスが通っているので、ファイル名だけで起動が出来ますが、パスが通っていないexeの場合は、フルパスで指定します。

Shell "C:\Windows\System32\Notepad.exe" & " " & "C:\ひらちんの部屋\Shell関数から開くメモサンプル.txt", 1

みたいな感じです。

システム起動ファイル名のサンプル

環境によっても違うと思いますが、このあたりの機能はフルパス書かなくても実行出来ると思います。

コマンドプログラム
calc.exe電卓
charmap.exe文字コード表
cmd.exeコマンドプロンプト
excel.exeExcel (Microsoft Office)
explorer.exeエクスプローラー
ftp.exeftpクライアント
iexplorer.exeInternet Explorer
mspaint.exeペイント
notepad.exeメモ帳
outlook.exeOutlook (Microsoft Office)
pbrush.exeペイント
powerpnt.exePowerpoint (Microsoft Office)
powershell.exePowershell
winword.exeWord (Microsoft Office)
write.exeワードパッド

cmdとか、powershellとかは、セキュリティソフトに怒られるかもしれないですが、、、w


スポンサーリンク

スポンサーリンク

スポンサーリンク


シェアする

フォローする


スポンサーリンク