オーロラさんの勉強帳

IT企業勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。少しでもお役に立てたら幸いです。

【Excel VBA エキスパート ベーシック】Msgbox関数 (メッセージダイアログボックスの表示) (VBA入門30)

 

Msgbox関数とは

以下のようなメッセージを表示するダイアログボックスを表示します。

<Msgbox例>

f:id:auroralights:20210111003337p:plain f:id:auroralights:20210111010031p:plain

 

構文
Msgbox 文字列,ボタン・アイコン,タイトル
 →戻り値を取得しない場合は引数を()で囲いません。
Msgbox(文字列,ボタン・アイコン,タイトル)
 →戻り値を取得する場合は引数を()で囲みます。
※引数を()で囲むかどうかは、Msgbox関数の戻り値を利用するかどうかで決まります。戻り値を利用しない場合は()は不要。戻り値を利用する場合は()が必要です。
※ヘルプファイル、コンテキストを指定するMsgbox(文字列,ボタンとアイコン,タイトル,ヘルプファイル,コンテキスト)という書き方もありますが、本記事では省略します。

 

引数

f:id:auroralights:20210111004331p:plain

引数の「ボタン・アイコン」の詳細

f:id:auroralights:20210111010126p:plain

ボタンのサンプル

f:id:auroralights:20210111012926p:plain

アイコンのサンプル

f:id:auroralights:20210111013130p:plain

標準ボタンのサンプル

f:id:auroralights:20210111013337p:plain

Msgbox関数の戻り値

ユーザがどのボタンをクリックしたのかにより、以下の定数を返します。戻り値を受け取る変数はLong型・Integer型で宣言します。

f:id:auroralights:20210111010726p:plain

 

サンプルコード1:戻り値を使わない場合

「Msgbox "おはようございます"」、「Msgbox ("おはようございます")」は同じメッセージを表示します。

「Msgbox "おはようございます",0,"挨拶"」は「挨拶」というタイトルをつけています。

「MsgBox "確定しますか", vbYesNoCancel + vbQuestion + vbDefaultButton3, "確認画面"」は「確定しますか」というメッセージ。ボタンを「vbYesNoCancel」で「はい」「いいえ」「キャンセル」を表示。「vbQuestion」で問合せアイコンを表示。「vbDefaultButton3」でデフォルトを3つ目のボタン「キャンセル」にしています。

コメントアウトしている「MsgBox ("確定しますか", vbYesNoCancel + vbQuestion + vbDefaultButton3, "確認画面")」はエラーになります。複数の引数を指定かつ戻り値を利用しない場合は()を使うとエラーになるので注意しましょう。

f:id:auroralights:20210111011542p:plain

サンプルコード2:戻り値を使う場合

Long型の変数iにMsgboxでどのボタンを押したか表す戻り値を格納し、その戻り値によってSelect Case文で該当するメッセージを表示します。

f:id:auroralights:20210111014135p:plain

f:id:auroralights:20210111014439p:plain