今回は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文による条件分岐は以下の記事を参照ください。
コメント