【Excel VBA】MsgBoxでメッセージボックスを表示する方法

Excel VBAでMsgBoxの使い方を知りたい
メッセージボックスでタイトルやアイコンを設定させたい
メッセージボックスで[はい][いいえ]で処理を分岐させたい

Excel VBAでメッセージボックスを表示させるにはMsgBox関数を使えば簡単ですが、初心者にとっては基本的な使い方やパターン別に使い分ける方法がいまいちわからない方も多いのではないでしょうか?

とくにユーザーが選択したボタンで処理を変える方法は、使いやすさの面で重要となります。そこで、この記事ではMsgBox関数でメッセージボックスを表示する方法について、以下の内容で解説していきます。

  • MsgBox関数とは
  • メッセージボックスを表示する方法
  • ユーザーが選択したボタンで処理を変える方法

メッセージボックスを表示させる方法を基礎の基礎から応用的な方法まで網羅的に紹介していますので、ぜひ参考にしてください。

それでは、例を交えながら詳しく解説していきます。

VBAのMsgBox関数とは

MsgBox関数とは、メッセージボックスを表示するための関数です。この関数の引数に指定したメッセージを、次の画像のように表示することができます。

vba_msgbox11

また、メッセージを表示する以外にも、いくつかできることがあります。詳しくは、以降で解説しています。

VBAでメッセージボックスを表示する方法

ExcelVBAでは、メッセージボックスを表示するために、次のようにMsgBox関数を使用します。

MsgBox関数の使い方

MsgBox関数でメッセージを表示するためには、次のサンプルコードのように、メッセージを指定することでメッセージボックスを表示することができます。

[実行結果]

vba_msgbox11

実行結果からメッセージボックスが表示されることを確認できます。

タイトルの設定方法

メッセージボックスのタイトルを変更するためには、次のように引数Titleにタイトル名を指定します。

[実行結果]

vba_msgbox21

実行結果からタイトルが変更されたことを確認できます。

アイコンの設定方法

VBAではアイコンを表示させるための標準アイコンが用意されています。次の表にあるような用途で使い分けます。

種類画像定数説明
エラーアイコンvba_msgbox23vbCritical16エラーメッセージで使用します。
疑問符アイコンvba_msgbox26vbQuestion32ヘルプウィンドウを開くメッセージボックスで使用します。
警告アイコンvba_msgbox24vbExclamation48警告のメッセージで使用します。
情報アイコンvba_msgbox25vbInformation64大事な情報を伝えるメッセージで使用します。

メッセージボックスに標準アイコンを表示するためには、次のように引数Buttonsを指定します。

[実行結果]

vba_msgbox12

実行結果から標準アイコンが表示されたことを確認できます。

改行コードを使用する方法

MsgBox関数で改行コードを使用するためには、vbCrLfを使用します。次のサンプルコードでは、文字列にvbCrLf(改行コード)を連結するために&(アンパサンド)を使用しています。

[実行結果]

vba_msgbox31

実行結果からメッセージが改行されていることを確認できます。この記事には登場しませんが、改行コードにはいくつか種類があります。

改行コードの種類や使い分けの解説をしている、こちらの記事がとても参考になります。改行コードについて詳しく知りたい方は、是非ご覧ください。

【VBA入門】セル内とMsgBox内、コード内での改行コードの使い分け
更新日 : 2019年4月25日

変数の値と文字列を連結して表示する方法

文字列と変数の値を連結するためには、次のように記述します。

ExcelVBAでは、文字列や変数の値を&(アンパサンド)で連結できます。次のサンプルコードでは、変数numの値を文字列に連結する為に「str = “変数の値は” & num & “です。”」としています。

[実行結果]

vba_msgbox32

実行結果から文字列と変数の値を連結して表示していることが確認できます。

選択ボタンで処理を分岐する

メッセージボックスでは、ボタンを表示することでユーザーと対話するような形で処理を進めることができます。ここでは、メッセージボックスにボタンを表示し、ユーザーが選択したボタンで処理を変える方法を解説します。

選択ボタンで処理を変えるには?

MsgBoxの戻り値を使用することで、ユーザーが選択したボタンによって処理を変えることができます。MsgBoxの戻り値を代入する変数型は、VbMsgBoxResult列挙型を使います。

VbMsgBoxResult列挙型には、次の表の通り押されたボタンに対応した定数が代入されます。

定数説明
vbOK1[OK]ボタンが押されたことを示します。
vbCancel2[キャンセル]ボタンが押されたことを示します。
vbAbort3[中止]ボタンが押されたことを示します。
vbRetry4[再試行]ボタンが押されたことを示します。
vbIgnore5[無視]ボタンが押されたことを示します。
vbYes6[はい]ボタンが押されたことを示します。
vbNo7[いいえ]ボタンが押されたことを示します。

vbYesNoと[はい]/[いいえ]ボタンで処理を分岐する

引数Buttonsを指定して、メッセージボックスにボタンを表示することができます。引数Buttonsに指定できるボタンは、次の表の通りです。

定数説明
vbOKOnly0[OK]ボタンのみを表示します。
vbOKCancel1[OK]ボタンと[キャンセル]ボタンを表示します。
vbAbortRetryIgnore2[中止]、[再試行]、[無視]の3つのボタンを表示します。
vbYesNoCancel3[はい]、[いいえ]、[キャンセル]の3つのボタンを表示します。
vbYesNo4[はい]ボタンと[いいえ]ボタンを表示します。
vbRetryCancel5[再試行]ボタンと[キャンセル]ボタンを表示します。

引数Buttonsには、次のように上の表からボタンを示す定数か値を指定します。

次のサンプルコードは、[はい]と[いいえ]のボタンを表示し、ユーザーが選択したボタンによって処理を変えています。

[実行時]

vba_msgbox41

[実行結果(「はい」を選択した場合)]

vba_msgbox42

[実行結果(「いいえ」を選択した場合)]

vba_msgbox43

実行結果から、ユーザーが選択したボタンによって処理を変わっていることが確認できます。

まとめ

今回は、MsgBox関数を使用してメッセージボックスを表示する方法を解説しました。引数Buttonsを指定することで、標準アイコンやボタンを表示することができましたね。

また、戻り値を利用してユーザーが選択したボタンで処理を変える方法は、ソフトウェア開発では必須の技術と言えます。

もし、忘れてしまった場合はこの記事を思い出してみてください!

Excel VBAを最短で習得したい方へ

元々ITリテラシーの高い方やプログラムの学び方がわかっている方であれば、この記事通りに進めていけば、Excel VBAを独学で習得することができるでしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「なかなかやり遂げられ無い、挫折してしまった」
「時間が足りない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決することができない」

このような悩みを抱えている方も少なく無いと思います。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、より深くExcel VBAについて学習することできます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方やカリキュラムを考えてみませんか?

Excel VBAならではの学習方法や、現役エンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta2_vba2

LINEで送る
Pocket

書いた人

イシキ マコト

イシキ マコト

フリーランスのエンジニアです。
最近では、プログラミング関連の記事を作成するライターとしても活動しています。

趣味と業務の両方でプログラミング言語をいくつも学んできたので
その経験を活かして分かりやすい記事を作成できればと考えています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説