
MsgBox関数には戻り値があり、戻り値を変数に格納し判定しましょう。
Excel 2013 マクロ講座
前回では、[はい] ボタンと [いいえ] ボタンを表示する、vbYesNo
[OK] ボタンと [キャンセル] ボタンを表示する、vbOKCancelを使ったメッセージボックスを表示するコードを作成しました。
ところで、ユーザーがメッセージボックス上でどのボタンを押したかを判定するにはどうすればいいでしょうか?
MsgBox関数には戻り値があり、「メッセージボックス上でユーザーが押したボタン」返します。
この戻り値を変数に格納し、判定することで、ユーザーが押したボタンに応じた処理ができます。
(サンプルファイルは、こちらから 2013マクロ講座18回サンプルデータ)


Sub 継続確認()
Dim Modori As Integer
Modori = MsgBox("処理を続けますか?", vbYesNo + vbExclamation, "継続確認")
If Modori = vbNo Then
Exit Sub
End If
MsgBox "処理を続けました。", vbOKOnly, "処理続行"
End Sub


Sub セルの内容表示()
Dim 内容 As Integer
内容 = MsgBox("セルの中身を表示しますか?", _
vbOKCancel + vbQuestion, "セルの値表示")
If 内容 = vbOK Then
MsgBox ActiveCell.Value
End If
End Sub

