こんなあなたにおすすめ
・Excel VBAでメッセージボックスの使い方を知りたい
今回は、Excel VBAでよく使うメッセージボックスの使い方についてご紹介します。
ユーザーにメッセージを伝えるためにも重要になってくるため、この機会に使えるようになりましょう。
メッセージを表示するだけでなく、ユーザーの選択したコマンドによって、処理を実行したりもできるため、そちらについても解説します。
Excel VBAでメッセージボックスの使い方を知りたい
メッセージボックスの種類一覧
MsgBoxの種類は次の通りです。
定数 | 値 | 内容 |
---|---|---|
vbOKOnly | 0 | [OK]ボタンのみを表示する |
vbOKCancel | 1 | [OK]ボタンと[キャンセル]ボタンを表示する |
vbAbortRetryIgnore | 2 | [中止]、[再試行]、および[無視]の3つのボタンを表示する |
vbYesNoCancel | 3 | [はい]、[いいえ]、および[キャンセル]の3つのボタンを表示する |
vbYesNo | 4 | [はい]ボタンと[いいえ]ボタンを表示する |
vbRetryCancel | 5 | [再試行]ボタンと[キャンセル]ボタンを表示する |
vbCritical | 16 | 警告メッセージアイコンを表示する |
vbQuestion | 32 | 問い合わせメッセージアイコンを表示する |
vbExclamation | 48 | 注意メッセージアイコンを表示する |
vbInformation | 64 | 情報メッセージアイコンを表示する |
ボタンが押された時の戻り値
MsgBoxの戻り値は次の通りです。
定数 | 値 | 内容 |
---|---|---|
vbOK | 1 | [OK]ボタンが押された |
vbCancel | 2 | [キャンセル]ボタンが押された |
vbAbort | 3 | [中止]ボタンが押された |
vbRetry | 4 | [再試行]ボタンが押された |
vbIgnore | 5 | [無視]ボタンが押された |
vbYes | 6 | [はい]ボタンが押された |
vbNo | 7 | [いいえ]が押された |
メッセージボックスのSampleコード
シンプルなメッセージ
最もシンプルでよく使うメッセージボックスです。
Sub test1() MsgBox ("こんにちは!") End Sub
メッセージ内で改行
メッセージ内で改行したい場合は、vbCrLfを使いましょう。
ユーザー目線になったときに、見やすさはとても重要ですので、改行をうまく使って見やすくしましょう。
Sub test2() MsgBox ("こんにちは!" & vbCrLf & "山田 太郎です。") End Sub
vbOKCancel + vbCritical
Sub test3() MsgBox "危険な状態ですが、処理を続行しますか?", _ vbOKCancel + vbCritical End Sub
vbAbortRetryIgnore + vbCritical
Sub test4() MsgBox "危険な状態ですが、処理を続行しますか?", _ vbAbortRetryIgnore + vbCritical End Sub
vbYesNoCancel + vbQuestion
Sub test5() MsgBox "この記事を評価しますか?", vbYesNoCancel + vbQuestion End Sub
vbYesNo + vbQuestion
Sub test6() MsgBox "この記事を評価しますか?", vbYesNo + vbQuestion End Sub
vbExclamation
Sub test7() MsgBox "バッテリー残量が10%を下回りました。", vbExclamation End Sub
vbRetryCancel + vbInformation
Sub test8() MsgBox "接続に失敗しました。", vbRetryCancel + vbInformation End Sub
vbRetryCancel + vbInformation (値ver.)
Sub test9() MsgBox "接続に失敗しました。", 5 + 64 End Sub
vbRetryCancel + vbInformation (値ver.) メッセージボックスのタイトル設定
Sub test10() MsgBox "接続に失敗しました。", 5 + 64, "接続確認" End Sub
「x」が押された時の処理
メッセージボックスで「x」が押されたときは、If文でvbCancelを指定してあげることで、キャンセル時の処理を設定することができます。
Sub test11() Dim reply As Long reply = MsgBox("接続に失敗しました。", _ vbRetryCancel + vbInformation) If reply = vbCancel Then MsgBox "キャンセルされました。" End If End Sub
【メッセージボックス】
【「x」が押されたときの実行結果】
ボタンが押されたときの処理
ユーザーがボタンを選択したときに、選択したボタンによって異なる処理をすることができます。
Sub test12() Dim reply As Long reply = MsgBox("この記事を評価しますか?", _ vbYesNo + vbQuestion, "評価アンケート") If reply = vbYes Then MsgBox "この記事は評価されました。", , "評価結果" Else MsgBox "この記事は評価されませんでした。", , "評価結果" End If End Sub
【メッセージボックス】
【「Yes」が押された時の実行結果】
【「No」が押された時の実行結果】
標準(初期選択)ボタンを指定
メッセージボックスが表示されたとき、Enterを押すと標準ボタンが押されたことになります。
初期値は、
ボタンが1つの場合・・・そのボタン
複数個の場合・・・一番左のボタン
となっています。
「Yes」、「No」の選択肢でユーザーが間違ってEnterを押したときに「Yes」になると困る場合などに、「No」を標準ボタンにしてあげるとそのリスクを回避することができます。
Sub test13()
Dim reply As Long
reply = MsgBox("この記事を評価しますか?", _
vbYesNo + vbDefaultButton2, "評価アンケート")
If reply = vbYes Then
MsgBox "この記事は評価されました。", , "評価結果"
Else
MsgBox "この記事は評価されませんでした。", , "評価結果"
End If
End Sub
定数 | 値 | 内容 |
---|---|---|
vbDefaultButton1 | 0 | 第1ボタンを標準ボタンにする |
vbDefaultButton2 | 256 | 第2ボタンを標準ボタンにする |
vbDefaultButton3 | 512 | 第3ボタンを標準ボタンにする |
vbDefaultButton4 | 768 | 第4ボタンを標準ボタンにする |
まとめ
ここまで、メッセージボックスの表示方法について解説しました。
Excel VBAで必ずと言っていいほどメッセージボックスは使うので、この機会にいろんな方法を習得しましょう。
If文については、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】If文 条件分岐 超便利 & 簡単
Excelで作業効率をアップしたい方は、下記の記事もご参照ください。
>>Excelのショートカット一覧 覚えて作業効率アップ!!
>>Excelで覚えておくべき関数 作業効率アップ間違いなし
オンラインスクール受講者数No.1!
・自宅にいながらオンライン完結で勉強できる
➡スクールへの移動時間を削減するため、効率的に学習可能!
・受講生に1人ずつ現役のプロのパーソナルメンターがつく
➡分からないことがわかるまで徹底的にメンターに質問可能!
・チャットで質問すればすぐに回答が返ってくる
➡レスポンスが速いから、わからないことをその場で解決!
・オリジナルサービスやオリジナルアプリなどの開発までサポート
➡就職、転職のときに役立つポートフォリオを開発可能!
無料で体験できるので、まずはお試し
>>TechAcademyの無料体験はこちら
[…] ので、ご参照ください。 関連記事:【ExcelVBA】メッセージボックスの使い方 MsgBox […]
[…] ので、ご参照ください。 関連記事:【ExcelVBA】メッセージボックスの使い方 MsgBox […]