メッセージボックスの戻り値
マクロ講座18回
MsgBox関数には戻り値があり、戻り値を変数に格納し判定しましょう。
Excel 2013 マクロ講座
メッセージボックスの戻り値を取得
前回では、[はい] ボタンと [いいえ] ボタンを表示する、vbYesNo
[OK] ボタンと [キャンセル] ボタンを表示する、vbOKCancelを使ったメッセージボックスを表示するコードを作成しました。
ところで、ユーザーがメッセージボックス上でどのボタンを押したかを判定するにはどうすればいいでしょうか?
MsgBox関数には戻り値があり、「メッセージボックス上でユーザーが押したボタン」返します。
この戻り値を変数に格納し、判定することで、ユーザーが押したボタンに応じた処理ができます。
(サンプルファイルは、こちらから 2013マクロ講座18回サンプルデータ)
ユーザーの押したボタンを変数にする
MsgBox関数の戻り値は次のようになります。
では、コードを考えてみましょう。
戻り値を変数に格納するので、例では、名前をModoriとつけましょう。
戻り値は整数ですから、Integerを宣言します。
戻り値を変数に格納するので、例では、名前をModoriとつけましょう。
戻り値は整数ですから、Integerを宣言します。
Sub 継続確認() Dim Modori As Integer Modori = MsgBox("処理を続けますか?", vbYesNo + vbExclamation, "継続確認") If Modori = vbNo Then Exit Sub End If MsgBox "処理を続けました。", vbOKOnly, "処理続行" End Sub
Dim Modori As Integer
Modoriは、メッセージボックスの[はい]、[いいえ]の値ですから、
vbYesNo
さらに、アイコンを表示するので、
+ vbExclamation
タイトルに"継続確認"と入れましょう。
Modori = MsgBox("処理を続けますか?", vbYesNo + _
vbExclamation, "継続確認")
If Modori = vbNo Then
Exit Sub
End If
MsgBox "処理を続けました。", vbOKOnly, "処理続行"
Modoriは、メッセージボックスの[はい]、[いいえ]の値ですから、
vbYesNo
さらに、アイコンを表示するので、
+ vbExclamation
タイトルに"継続確認"と入れましょう。
Modori = MsgBox("処理を続けますか?", vbYesNo + _
vbExclamation, "継続確認")
If Modori = vbNo Then
Exit Sub
End If
MsgBox "処理を続けました。", vbOKOnly, "処理続行"
If Modori = vbNo Then
Exit Sub
いいえが押されると、Exit文が実行されて終了します。
End If
MsgBox "処理を続けました。", vbOKOnly, "処理続行"
そうでない時は、メッセージボックスを、OKボタンオンリー、タイトル処理続行で表示します。
Exit Sub
いいえが押されると、Exit文が実行されて終了します。
End If
MsgBox "処理を続けました。", vbOKOnly, "処理続行"
そうでない時は、メッセージボックスを、OKボタンオンリー、タイトル処理続行で表示します。
アイコンを表示
今度は、vbQuestion 問い合わせメッセージ アイコンを表示します。
内容という変数を宣言しています。
内容は、MsgBoxの戻り値です。
実行すると、メッセージボックスに
セルの中身を表示しますか?というメッセージが表示されます。
内容という変数を宣言しています。
内容は、MsgBoxの戻り値です。
Sub セルの内容表示() Dim 内容 As Integer 内容 = MsgBox("セルの中身を表示しますか?", _ vbOKCancel + vbQuestion, "セルの値表示") If 内容 = vbOK Then MsgBox ActiveCell.Value End If End Sub
実行すると、メッセージボックスに
セルの中身を表示しますか?というメッセージが表示されます。
OKをクリックすると、
メッセージボックスにアクティブセルの内容が表示されます。
キャンセルをクリックすると、終了します。
メッセージボックスにアクティブセルの内容が表示されます。
キャンセルをクリックすると、終了します。