教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA その他操作】他のアプリケーションを起動する(Shell)にはどうすればいいの?教えて!

f:id:m_kbou:20200418090024p:plain

Excelから他のアプリケーションを起動するにはShell関数を使用します。指定方法について説明します。

 

【目次】

 

構文

記述方法は以下の通りとなります。

Shell[アプリケーションパス]”,vbNormalFocus

[説明]:

他のアプリケーションを起動するには「Shell [アプリケーションパス]”,vbNormalFocus」と記述します。[アプリケーションパス]には起動するアプリケーションのパスを記述します。アプリケーションパスを幾つか以下一覧に纏めておきますので参考にして下さい。vbNormalFocus起動したアプリケーションのウィンドウ状態を変更する記述となります。基本的には通常状態での起動をするため「vbNormalFocus」のままで問題はありません。内容を纏めると、「[アプリケーションパス]で指定したアプリケーションを起動して下さい。」との意味になります。

f:id:m_kbou:20200320132942p:plain

[記述例]: 

Shell "C:\Windows\System32\notepad.exe", vbNormalFocus
Shell "C:\Windows\calc.exe", vbNormalFocus
Shell "C:\Program Files\internet explorer\iexplore.exe", vbNormalFocus

 

使い方

使い方について具体的に説明していきます。

指定したアプリケーションが存在する場合

指定したアプリケーションが存在する場合の起動例について説明します。

[プログラミング例①]:

Sub サンプル()
    Shell "C:\Windows\System32\notepad.exe", vbNormalFocus
End Sub

内容は、「メモ帳を起動して下さい。」との意味になります。

f:id:m_kbou:20210218082718p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例①]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。<実行>ボタンをクリックします。(ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)  

f:id:m_kbou:20210306070400p:plain

②処理結果は以下の様になります。メモ帳が起動します。

f:id:m_kbou:20210306070415p:plain

[サンプル①]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定したアプリケーションが存在する場合(例①)についての説明は以上です。 

[プログラミング例②]:

Sub サンプル()
    Shell "C:\Windows\System32\calc.exe", vbNormalFocus
End Sub

内容は、「電卓を起動して下さい。」との意味になります。

f:id:m_kbou:20210218082829p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例②]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。<実行>ボタンをクリックします。(ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)  

f:id:m_kbou:20210306070440p:plain

②処理結果は以下の様になります。電卓が起動します。

f:id:m_kbou:20210306070451p:plain

[サンプル②]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。 

drive.google.com

指定したアプリケーションが存在する場合()についての説明は以上です。

[プログラミング例③]:

Sub サンプル()
    Shell "C:\Program Files\internet explorer\iexplore.exe", vbNormalFocus
End Sub

内容は、「IEを起動して下さい。」との意味になります。

f:id:m_kbou:20210218082944p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例③]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。<実行>ボタンをクリックします。(ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)  

f:id:m_kbou:20210306070542p:plain

②処理結果は以下の様になります。IEが起動します。

f:id:m_kbou:20210306070555p:plain

[サンプル③]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定したアプリケーションが存在する場合(例③)についての説明は以上です。

 

指定したアプリケーションが存在しない場合

指定したアプリケーションが存在しない場合の起動例について説明します。

[プログラミング例]:

Sub サンプル()
    Shell "C:\TEST.TXT", vbNormalFocus
End Sub

内容は、「"C:\TEST.TXT"を通常表示で起動して下さい。」との意味になります。
※指定したファイルは実在しません。

f:id:m_kbou:20210218083107p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。<実行>ボタンをクリックします。(ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)  

f:id:m_kbou:20210306070619p:plain

②処理結果は以下の様になります。「ファイルが見つかりません。」のエラーメッセージが表示されます。

f:id:m_kbou:20210306070630p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定したアプリケーションが存在しない場合の起動説明は以上です。

 

おわりに

今回は他のアプリケーション起動する方法について説明しました。Excel→メモ帳を起動してデータを転記する場合やExcel→Wordを起動してデータを転記する場合等、他のアプリケーションとの連携は何かと使用します。是非活用下さい。