VBA【MsgBox】のすべて(アイコンや分岐)【総集編】わかりやすく解説【MsgBox完全マスター】
投稿者 JoVBA投稿日:2023年4月15日2024年5月8日VBAで「MsgBox」について、サンプルコードと共に解説します。
「MsgBox」関数は色々な事が出来るので、それぞれのサンプルコードも用意してあります。
ExcelVBAでメッセージボックスを表示するにはVBAを使用する必要があります。
メッセージボックスは、ダイアログボックスとも呼ばれたりしますがVBAでは、メッセージボックスという名称が一般的です。
VBAで「MsgBox」関数を使用する事で、メッセージボックスを表示する事ができます。
この記事では、「MsgBox」に関するアイコンや分岐など、全てを紹介しています。
ですので、この記事内で知りたいことを検索すれば、色々な他の記事を見る必要がありません。
VBAのメッセージボックスにも、色々種類があるので、その種類も解説します。
VBAの「MsgBox」の引数と「MsgBox」を改行する方法など「MsgBox」関数について、全て解説していきます。
メッセージを表示する「MsgBox」関数は、難しくはないので「MsgBox」を完全マスターしましょう。
VBAでさくっとシンプルなメッセージボックスを表示したい方はこちらをご覧ください
< ---目次--- >
- ◆VBA「MsgBox」とは?
- ◆「MsgBox」の引数
- ・引数一覧
- ・それぞれの引数を解説
- 引数:prompt ※必須
- 引数:buttons ※省略可能
- 引数:title ※省略可能
- 引数:helpfile ※省略可能
- 引数:context ※省略可能
- ◆メッセージボックスを表示する方法
- ・メッセージボックス表示サンプルコード
- ・MsgBoxのサンプルコード解説
- シンプルなメッセージボックスを表示する
- ボタンやアイコンを指定してメッセージボックスの表示
- メッセージボックスで条件分岐する方法
- ◆メッセージボックスのボタンやアイコンの種類一覧
- ・メッセージボックスで表示できる条件分岐ボタンの種類
- [OK]のみを表示する
- [OK]と[キャンセル]を表示する
- [中止]と[再試行]と[無視]を表示する
- [はい]と[いいえ]と[キャンセル]を表示する
- [はい]と[いいえ]を表示する
- [再試行]と[キャンセル]を表示する
- ・メッセージボックスで表示できるアイコンの種類
- [警告]アイコンを表示する
- [問い合わせ]アイコンを表示する
- [注意]アイコンを表示する
- [情報]アイコンを表示する
- ・メッセージボックスで表示できる条件分岐ボタンの種類
- ◆まとめ
◆VBA「MsgBox」とは?
ExcelVBAにおける、「MsgBox」とは、メッセージボックスを表示する事ができる関数です。
メッセージボックスにも様々種類があります。
例えば、「はい」や「いいえ」、「キャンセル」などの選択肢を表示するメッセージボックスや注意喚起、エラー警告、などのメッセージレベルの変更したものなど、色々あります。
VBAの「MsgBox」では、上記のメッセージボックスの表示が可能です。
さらに「MsgBox」でメッセージボックスを表示して選択肢による条件分岐する事も可能です。
「MsgBox」でボタンの表示を指定することによって、右上の閉じる(×)ボタンを無効にしてグレーアウトすることができます。
右上の閉じる(×)ボタンがグレーアウトすれば、押せなくなります。
表示はされますが、押しても反応はありません。
VBAの「MsgBox」を表示して、色々組み合わせると、さらに便利です。
◆「MsgBox」の引数
・引数一覧VBA「MsgBox」の引数は、下記になります。
MsgBox (prompt [, buttons ] [, title ] [, helpfile, context ])
※[ ]の部分は省略可能です。
・それぞれの引数を解説 引数:prompt ※必須「MsgBox」のpronptとは、表示したいメッセージの文字列を指定します。
VBA MsgBoxの「prompt」の指定は、必須の引数なります。
使用する文字の幅により、「prompt」は、最大で約 1024 文字使用できます。
メッセージボックスを改行する場合は、「vbCrLf」等を使用して改行し区切ることができます。
詳しくは、こちらの記事をご覧ください。
VBA【MsgBox内で改行】する方法を簡単解説【改行コード】を使用 引数:buttons ※省略可能「MsgBox」のbuttonsとは、メッセージボックスのボタンの種類、アイコンを組み合わせて指定する事ができます。
VBA MsgBoxの「buttons」の指定は、省略可能の引数になります。
メッセージボックスで「注意」や「警告」アイコンの表示を指定したり「OK」や「キャンセル」、「再試行」などの選択ボタンを指定することができます。
リンク:「MsgBox」の引数「buttons」定数
省略された場合、「buttons」の既定値は 0 です。
引数:title ※省略可能「MsgBox」のtitleとは、メッセージボックスのタイトルバーに表示される文字列を指定する事ができます。
VBA MsgBoxの「title」の指定は、省略可能の引数になります。
「title」は、メッセージボックスのタイトルバーに表示される文字列式です。
メッセージボックスのタイトルバーというのは左上の部分でになります。
参考画像では、「メッセージボックスのタイトル」という部分がメッセージボックスのタイトルバーになります。
「title」が省略された場合は、タイトルバーにはアプリケーションの名前が表示されます。
例えば、Excelでメッセージボックスの引数「title」を省略するとタイトルバーには「Microsoft Excel」と表示されます
引数:helpfile ※省略可能「MsgBox」のhelpfileとは、「.chm」拡張子のヘルプファイルを開く事ができます。
VBA MsgBoxの「helpfile」の指定は、省略可能の引数になります。
ファイルのフルパスを文字列で指定するとヘルプファイルを開けます。
※「helpfile」を指定した場合は、「引数:context」の指定が必須になります。
引数:context ※省略可能「MsgBox」のcontextとは、「引数:helpfile」の表示したい項目を数値で指定します。
VBA MsgBoxの「context」の指定は、省略可能の引数になります。
「context」の数値は、「0」で大半のファイルは開きます。
ヘルプファイル側でトピックに割り当てられた番号が設定されている場合は「0」以外の数値でも開く事ができます。
※「context」を指定した場合は、「引数:helpfile」の指定が必須になります。
◆メッセージボックスを表示する方法
・メッセージボックス表示サンプルコード Sub メッセージボックスを表示する() '●シンプルなメッセージボックスの表示 MsgBox "メッセージ" '●ボタンやアイコンを指定してメッセージボックスの表示 MsgBox "ボタンやアイコンを指定", vbYesNoCancel + vbInformation '●メッセージボックスで条件分岐 rc = MsgBox("条件分岐します。", vbYesNo, "メッセージボックスで条件分岐") If rc = vbYes Then Debug.Print "vbYes" & " を選択" ElseIf rc = vbNo Then Debug.Print "vbNo" & " を選択" End If End Sub ・MsgBoxのサンプルコード解説 シンプルなメッセージボックスを表示するVBAで単純でシンプルなメッセージボックスを表示したい場合は「MsgBox “メッセージ”」と記述すれば、表示する事ができます。
'●シンプルなメッセージボックスの表示 MsgBox "メッセージ"「メッセージ」の部分を任意の文字列に変更してください。
ボタンやアイコンを指定してメッセージボックスの表示VBAでボタンやアイコンを指定して、メッセージボックスを表示したい場合は2個目の「引数:buttons 」に例として「vbYesNoCancel + vbInformation」と記述すれば、表示する事ができます。
'●ボタンやアイコンを指定してメッセージボックスの表示 MsgBox "ボタンやアイコンを指定", vbYesNoCancel + vbInformation「vbYesNoCancel 」で「はい」と「いいえ」と「キャンセル」ボタンの表示を指定しています。
「vbInformation」で青色背景の「ⅰ」のアイコンの表示を指定しています。
「vbYesNoCancel 」と「vbInformation」の間に「+」を使用することでボタンとアイコンの表示指定を組合せしています。
メッセージボックスで条件分岐する方法VBAの「MsgBox」で条件分岐する方法は、「変数=MsgBox ( ) 」という形にします。
そうすれば、選択したボタンが値として変数に格納されるのでその値で、条件分岐する事ができます。
'●メッセージボックスで条件分岐 rc = MsgBox("条件分岐します。", vbYesNo, "メッセージボックスで条件分岐") If rc = vbYes Then Debug.Print "vbYes" & " を選択" ElseIf rc = vbNo Then Debug.Print "vbNo" & " を選択" End If◆メッセージボックスのボタンやアイコンの種類一覧
VBAのメッセージボックスで使用できるボタンやアイコンを画像を添えて紹介します。
・メッセージボックスで表示できる条件分岐ボタンの種類「MsgBox」で選択ボタンを指定してメッセージボックス表示する場合は、条件分岐すると思いますので変数に格納する前提でのサンプルコードを記載します。
「rc =」と「()」を消しても、選択ボタンを指定してメッセージボックス表示する事はできますがその場合、条件分岐はできません。
[OK]のみを表示するメッセージボックスに「OK」のみ表示したい場合は2個目の「引数:buttons 」に「vbOKOnly」と記述します。
'[OK]のみ rc = MsgBox("vbOKOnly", vbOKOnly, "選択ボタン")VBAで上記コードを実行した場合下記の画像のようなメッセージボックスがエクセル上に表示されます。
※右上の閉じる(×)ボタンは、無効になりません
[OK]と[キャンセル]を表示するメッセージボックスに「OK」と[キャンセル]を表示したい場合は2個目の「引数:buttons 」に「vbOKCancel」と記述します。
'[OK]と[キャンセル] rc = MsgBox("vbOKCancel", vbOKCancel, "選択ボタン")VBAで上記コードを実行した場合下記の画像のようなメッセージボックスがエクセル上に表示されます。
※右上の閉じる(×)ボタンは、無効になりません
[中止]と[再試行]と[無視]を表示するメッセージボックスに[中止]と[再試行]と[無視]を表示したい場合は2個目の「引数:buttons 」に「vbAbortRetryIgnore」と記述します。
'[中止]と[再試行]と[無視] rc = MsgBox("vbAbortRetryIgnore", vbAbortRetryIgnore, "選択ボタン")VBAで上記コードを実行した場合下記の画像のようなメッセージボックスがエクセル上に表示されます。
※右上の閉じる(×)ボタンは、無効になります
[はい]と[いいえ]と[キャンセル]を表示するメッセージボックスに[はい]と[いいえ]と[キャンセル]を表示したい場合は2個目の「引数:buttons 」に「vbYesNoCancel」と記述します。
'[はい]と[いいえ]と[キャンセル] rc = MsgBox("vbYesNoCancel", vbYesNoCancel, "選択ボタン")VBAで上記コードを実行した場合下記の画像のようなメッセージボックスがエクセル上に表示されます。
※右上の閉じる(×)ボタンは、無効になりません
[はい]と[いいえ]を表示するメッセージボックスに[はい]と[いいえ]を表示したい場合は2個目の「引数:buttons 」に「vbYesNo」と記述します。
'[はい]と[いいえ] rc = MsgBox("vbYesNo", vbYesNo, "選択ボタン")VBAで上記コードを実行した場合下記の画像のようなメッセージボックスがエクセル上に表示されます。
※右上の閉じる(×)ボタンは、無効になります
[再試行]と[キャンセル]を表示するメッセージボックスに[再試行]と[キャンセル]を表示したい場合は2個目の「引数:buttons 」に「vbRetryCancel」と記述します。
'[再試行]と[キャンセル] rc = MsgBox("vbRetryCancel", vbRetryCancel, "選択ボタン")VBAで上記コードを実行した場合下記の画像のようなメッセージボックスがエクセル上に表示されます。
※右上の閉じる(×)ボタンは、無効になりません
・メッセージボックスで表示できるアイコンの種類「MsgBox」のメッセージボックスで指定できるアイコンの種類を紹介します。
[警告]アイコンを表示するメッセージボックスに[警告]アイコンを表示したい場合は2個目の「引数:buttons 」に「vbCritical」と記述します。
VBAの「MsgBox」の[警告]アイコンは、入力不備、エラー時などに使用します。
'警告 MsgBox "vbCritical", vbCritical, "アイコンの種類"VBAで上記コードを実行した場合下記の画像のようなメッセージボックスがエクセル上に表示されます。
「vbCritical」は赤色背景の「×す。
[問い合わせ]アイコンを表示するメッセージボックスに[問い合わせ]アイコンを表示したい場合は2個目の「引数:buttons 」に「vbQuestion」と記述します。
VBAの「MsgBox」の[問い合わせ]アイコンは、なにか選択を促す時などに使用します。
'問い合わせ MsgBox "vbQuestion", vbQuestion, "アイコンの種類"VBAで上記コードを実行した場合下記の画像のようなメッセージボックスがエクセル上に表示されます。
「vbQuestion」は、青色背景の「?」のアイコンになります。
[注意]アイコンを表示するメッセージボックスに[注意]アイコンを表示したい場合は2個目の「引数:buttons 」に「vbExclamation」と記述します。
VBAの「MsgBox」の[注意]アイコンは、注意喚起などに使用します。
'注意 MsgBox "vbExclamation", vbExclamation, "アイコンの種類"VBAで上記コードを実行した場合下記の画像のようなメッセージボックスがエクセル上に表示されます。
「vbExclamation」は三角形の黄色背景の「ⅰ」のアイコンになります。
[情報]アイコンを表示するメッセージボックスに[情報]アイコンを表示したい場合は2個目の「引数:buttons 」に「vbInformation」と記述します。
VBAの「MsgBox」の[情報]アイコンは、なにかのお知らせなどに使用します。
'情報 MsgBox "vbInformation", vbInformation, "アイコンの種類"VBAで上記コードを実行した場合下記の画像のようなメッセージボックスがエクセル上に表示されます。
「vbInformation」は、青色背景の「ⅰ」のアイコンになります。
◆まとめ
エクセルでメッセージボックスを表示する方法は、理解できましたでしょうか。
VBAで「MsgBox」を使えば、簡単にできますね。
これを読んでも解決できない方、なにか不明点がある場合はコメントして頂くか、こちらからお問い合わせしてください。