【Excel VBA】 MsgBoxを使って処理を分岐させる

Excel マクロ(VBA)

今回はExcel  VBAのメッセージボックスを使って後続の処理を分岐させる方法を紹介します。

スポンサーリンク

MsgBox関数

分岐させるために、MsgBox関数を使用します。MsgBox関数は、任意の文章+2択の選択肢を表示させることができます。

コードは後述しますが、まずはイメージを共有します。MsgBox関数を使った分岐でよく使うのは、”マクロを動かしますか?”という質問+Yes/Noの選択肢、といったものです。Yesを選べば後続の処理を実行し、Noを選べばVBAの処理を終了させます。

VBAを動かすと、まずは以下のようにメッセージボックスが出現し、2択を選べるようになります。

VBAが動いたことが分かるように、”はい”を選んだらA1セルに以下のようにコメントが出る処理を実行します。

”いいえ”を選んだら、その時点でVBAの処理を終了させます。

スポンサーリンク

コード解説

今回のコードは以下の通りです。

Sub test()

    Dim yesno As VbMsgBoxResult

    yesno = MsgBox(“VBAを起動しますか?”, vbYesNo + vbQuestion)

    If yesno = vbYes Then

        Cells(1, 1).Value = “VBAを起動しました。”

    Else: Exit Sub

    End If

End Sub

YesnoというmsgBoxでの結果を受け取る変数を用意します。MsgBox関数は、“”内に任意の文字列を設定できます。続いてどのようなボタンを出現させるかを設定できますが、基本的には2択で使い方は同じですので、ここではYes/Noの2択を設定できます。

後続部分では、If文による条件分岐を設定し、メッセージボックスで”はい”を選んだ場合の処理と、”いいえ”を選んだ場合の処理を設定します。

ここでは、”はい”を選んだ場合の処理として、A1セルに”VBAを起動しました。”という文字列を入力させ、”いいえ”を選んだ場合にはExit Subを使ってVBAを終了させます。

以上、メッセージボックスの使用例のコード解説です。上記のコードを好きなように応用してもらうことで、様々な分岐を設定できます。なお、If文による条件分岐は以下の記事を参照ください。
 

コメント

タイトルとURLをコピーしました