Web Analytics Made Easy - StatCounter

Economics Of TEC

RPA,経済学,IT技術などに関する情報を発信しています。

【Excel VBA】画面にメッセージを表示して処理を分岐する方法

f:id:WillSpecter:20200810141628j:plain

 やりたいこと

画面にメッセージを表示して、処理を分岐する

VBA起動後に以下のようなポップアップを表示します。

f:id:WillSpecter:20200829084725p:plain

Yesボタンを押すと「後続処理開始」のポップを出現させて、

Noボタンを押すと「処理中断」のポップアップを出現させて処理を中断するといった処理を行いたいと思います。

 

基本的な処理ですが、条件分岐引数戻り値などの重要なポイントが詰まっている処理です!

 

コードと解説は以下の通りです。
VBA コード】

Sub 処理実行()
    Dim 確認 As Integer
    確認 = MsgBox("処理を実行します。", vbYesNo)
    If 確認 = vbNo Then
        MsgBox "処理を中断します。"
        
        'マクロの中断
        Exit Sub
        
    End If
    MsgBox ("後続処理開始。")
End Sub

ポイント

引数でメッセージボックスを設定

今回は、MsgBoxの引数にvbYesNoを設定することで「はい」「いいえ」を選択できるようになりました。

このように引数を変更することで、様々なメッセージボックスを表示させることが可能です。

 

指定できるボタンとアイコンには下の図のように値が割り当てられています。

f:id:WillSpecter:20200829095207p:plain

例えばこのように記載すると表示されるメッセージボックスは以下のようになります。

MsgBox("処理を実行します。", 2 + 48, "確認")

f:id:WillSpecter:20200829091107p:plain

Exit Sub

Exit Subはマクロの処理を終了する命令です。

End Subも同じくマクロを終了する命令となりますが、

 

Exit Subは厳密に言うと、プログラムを終了させるわけではなく、Subから抜けるという意味になります。

Subを呼び出したプロシージャに戻ります。

 

End Subはプログラムを完全に終了させます。

戻り値

メッセージボックスのボタンには、戻り値と呼ばれる値が割り当てられています。

ボタンによって戻り値が異なるため、クリックされたボタンによって処理を分岐することができます。

 

戻り値は今回のようにvbNoとする以外にも「7」などの数値で判定することも可能です。

f:id:WillSpecter:20200829092915p:plain

 ひとこと

 

メッセージボックスはマクロの実行を一時停止して、変数の中身などの状態を確認するデバックとしても使うことができます。

 

処理がややこしくなってきた時は、メッセージボックスを上手く活用して流れを整理しましょう!

 

他にもVBAについて紹介しているのでぜひ参考にしてみてください!(^^)!

it-rpa.hatenablog.com

it-rpa.hatenablog.com

it-rpa.hatenablog.com

it-rpa.hatenablog.com

it-rpa.hatenablog.com

it-rpa.hatenablog.com

できるシリーズはフルカラーでかなり細かいところまで画像を使って解説してあるのでオススメです!