メッセージボックスでタイトルやアイコンを設定させたい
メッセージボックスで[はい][いいえ]で処理を分岐させたい
Excel VBAでメッセージボックスを表示させるにはMsgBox関数を使えば簡単ですが、初心者にとっては基本的な使い方やパターン別に使い分ける方法がいまいちわからない方も多いのではないでしょうか?
とくにユーザーが選択したボタンで処理を変える方法は、使いやすさの面で重要となります。そこで、この記事ではMsgBox関数でメッセージボックスを表示する方法について、以下の内容で解説していきます。
- MsgBox関数とは
- メッセージボックスを表示する方法
- ユーザーが選択したボタンで処理を変える方法
メッセージボックスを表示させる方法を基礎の基礎から応用的な方法まで網羅的に紹介していますので、ぜひ参考にしてください。
それでは、例を交えながら詳しく解説していきます。
VBAのMsgBox関数とは
MsgBox関数とは、メッセージボックスを表示するための関数です。この関数の引数に指定したメッセージを、次の画像のように表示することができます。
また、メッセージを表示する以外にも、いくつかできることがあります。詳しくは、以降で解説しています。
VBAでメッセージボックスを表示する方法
ExcelVBAでは、メッセージボックスを表示するために、次のようにMsgBox関数を使用します。
MsgBox関数の使い方
MsgBox関数でメッセージを表示するためには、次のサンプルコードのように、メッセージを指定することでメッセージボックスを表示することができます。
Sub Sample() MsgBox "これがメッセージボックスです。" End Sub
[実行結果]
実行結果からメッセージボックスが表示されることを確認できます。
タイトルの設定方法
メッセージボックスのタイトルを変更するためには、次のように引数Titleにタイトル名を指定します。
Sub Sample() MsgBox "これがメッセージボックスです。", Title:="ここがタイトルです。" End Sub
[実行結果]
実行結果からタイトルが変更されたことを確認できます。
アイコンの設定方法
VBAではアイコンを表示させるための標準アイコンが用意されています。次の表にあるような用途で使い分けます。
種類 | 画像 | 定数 | 値 | 説明 |
---|---|---|---|---|
エラーアイコン | vbCritical | 16 | エラーメッセージで使用します。 | |
疑問符アイコン | vbQuestion | 32 | ヘルプウィンドウを開くメッセージボックスで使用します。 | |
警告アイコン | vbExclamation | 48 | 警告のメッセージで使用します。 | |
情報アイコン | vbInformation | 64 | 大事な情報を伝えるメッセージで使用します。 |
メッセージボックスに標準アイコンを表示するためには、次のように引数Buttonsを指定します。
Sub Sample() MsgBox "これがメッセージボックスです。", Buttons:=vbInformation End Sub
[実行結果]
実行結果から標準アイコンが表示されたことを確認できます。
改行コードを使用する方法
MsgBox関数で改行コードを使用するためには、vbCrLfを使用します。次のサンプルコードでは、文字列にvbCrLf(改行コード)を連結するために&(アンパサンド)を使用しています。
Sub Sample() MsgBox "これがメッセージボックスです。" & vbCrLf & "メッセージ内で改行することができます。" End Sub
[実行結果]
実行結果からメッセージが改行されていることを確認できます。この記事には登場しませんが、改行コードにはいくつか種類があります。
改行コードの種類や使い分けの解説をしている、こちらの記事がとても参考になります。改行コードについて詳しく知りたい方は、是非ご覧ください。
変数の値と文字列を連結して表示する方法
文字列と変数の値を連結するためには、次のように記述します。
"連結したい文字列" & 連結したい変数の値
ExcelVBAでは、文字列や変数の値を&(アンパサンド)で連結できます。次のサンプルコードでは、変数numの値を文字列に連結する為に「str = “変数の値は” & num & “です。”」としています。
Sub Sample() Dim num As Integer num = 1 Dim str As String str = "変数の値は" & num & "です。" MsgBox str End Sub
[実行結果]
実行結果から文字列と変数の値を連結して表示していることが確認できます。
選択ボタンで処理を分岐する
メッセージボックスでは、ボタンを表示することでユーザーと対話するような形で処理を進めることができます。ここでは、メッセージボックスにボタンを表示し、ユーザーが選択したボタンで処理を変える方法を解説します。
選択ボタンで処理を変えるには?
MsgBoxの戻り値を使用することで、ユーザーが選択したボタンによって処理を変えることができます。MsgBoxの戻り値を代入する変数型は、VbMsgBoxResult列挙型を使います。
VbMsgBoxResult列挙型には、次の表の通り押されたボタンに対応した定数が代入されます。
定数 | 値 | 説明 |
---|---|---|
vbOK | 1 | [OK]ボタンが押されたことを示します。 |
vbCancel | 2 | [キャンセル]ボタンが押されたことを示します。 |
vbAbort | 3 | [中止]ボタンが押されたことを示します。 |
vbRetry | 4 | [再試行]ボタンが押されたことを示します。 |
vbIgnore | 5 | [無視]ボタンが押されたことを示します。 |
vbYes | 6 | [はい]ボタンが押されたことを示します。 |
vbNo | 7 | [いいえ]ボタンが押されたことを示します。 |
vbYesNoと[はい]/[いいえ]ボタンで処理を分岐する
引数Buttonsを指定して、メッセージボックスにボタンを表示することができます。引数Buttonsに指定できるボタンは、次の表の通りです。
定数 | 値 | 説明 |
---|---|---|
vbOKOnly | 0 | [OK]ボタンのみを表示します。 |
vbOKCancel | 1 | [OK]ボタンと[キャンセル]ボタンを表示します。 |
vbAbortRetryIgnore | 2 | [中止]、[再試行]、[無視]の3つのボタンを表示します。 |
vbYesNoCancel | 3 | [はい]、[いいえ]、[キャンセル]の3つのボタンを表示します。 |
vbYesNo | 4 | [はい]ボタンと[いいえ]ボタンを表示します。 |
vbRetryCancel | 5 | [再試行]ボタンと[キャンセル]ボタンを表示します。 |
引数Buttonsには、次のように上の表からボタンを示す定数か値を指定します。
MsgBox "表示するメッセージ", Buttons:=ボタンを示す定数か値
次のサンプルコードは、[はい]と[いいえ]のボタンを表示し、ユーザーが選択したボタンによって処理を変えています。
Sub Sample() Dim rslt As VbMsgBoxResult rslt = MsgBox("これは、メッセージボックスですか?", Buttons:=vbYesNo) If rslt = vbYes Then MsgBox "正解です。" Else MsgBox "不正解です。" End If End Sub
[実行時]
[実行結果(「はい」を選択した場合)]
[実行結果(「いいえ」を選択した場合)]
実行結果から、ユーザーが選択したボタンによって処理を変わっていることが確認できます。
まとめ
今回は、MsgBox関数を使用してメッセージボックスを表示する方法を解説しました。引数Buttonsを指定することで、標準アイコンやボタンを表示することができましたね。
また、戻り値を利用してユーザーが選択したボタンで処理を変える方法は、ソフトウェア開発では必須の技術と言えます。
もし、忘れてしまった場合はこの記事を思い出してみてください!