教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 基本操作】MsgBox(メッセージボックス)の使い方(表示方法)について教えて!

f:id:m_kbou:20200418100639p:plain

MsgBoxを使う事でユーザへの情報・警告・エラーの表示や処理の選択をさせる事が可能となります。また、MsgBoxを上手に活用すれば、マクロの使い勝手をワンランクアップさせる事も可能です。その使い方について紹介します。

 

 

構文

記述方法は以下の通りとなります。

MsgBox [メッセージ],[ボタン/アイコン],[タイトル]

[説明]:

メッセージを表示します。

[メッセージ] 表示するメッセージを記述します。
※文字列の場合は「”」(ダブルクォーテーション)で囲みます。
[ボタン/アイコン] ボタンやアイコンの合計値を記述します。
省略可能です。(省略した場合はOKボタンのみ表示されます)
※各々のボタンやアイコンの値は以下一覧を参考にして下さい。
[タイトル] タイトルを記述します。
省略可能です。
※文字列の場合は「”」(ダブルクォーテーション)で囲みます。

f:id:m_kbou:20190513181558p:plain

■ボタン値

内容
0 「OK」ボタンのみを表示する。
1 「OK」と「キャンセル」の2つのボタンを表示する。
2 「中止」「再試行」「無視」の3つのボタンを表示する。
3 「はい」「いいえ」「キャンセル」の3つのボタンを表示する。
4 「はい」と「いいえ」の2つのボタンを表示する。
5 「再試行」と「キャンセル」の2つのボタンを表示する。

■アイコン値

アイコン 内容
16

f:id:m_kbou:20220204084537p:plain

警告アイコンを表示する。
32

f:id:m_kbou:20220204084713p:plain

問い合わせアイコンを表示する。
48

f:id:m_kbou:20220204084724p:plain

注意アイコンを表示する。
64

f:id:m_kbou:20220204084732p:plain

情報アイコンを表示する。

■標準ボタン値

内容
0 第1ボタンを標準ボタンにする。
256 第2ボタンを標準ボタンにする。
512 第3ボタンを標準ボタンにする。

また、MsgBoxは戻り値を返します。
戻り値の内容は以下一覧を参考にして下さい。

内容
1 「OK」ボタンが押された。
2 「キャンセル」ボタンが押された。
3 「中止」ボタンが押された。
4 「再試行」ボタンが押された。
5 「無視」ボタンが押された。
6 「はい」ボタンが押された。
7 「いいえ」ボタンが押された。

[記述例]:

MsgBox "おはようございます。", 64, "あいさつ"
MsgBox "おはようございます。", 273, "あいさつ"
MsgBox "おはようございます。", 563, "あいさつ"

 

使い方

使い方について具体的に説明します。

サンプル①

[プログラミング例]:

Sub メッセージ()

  MsgBox "おはようございます。", 64, "あいさつ"

End Sub

各項目には以下内容を記述しました。

---------------------------------

[メッセージ]:
  ”おはようございます。”
[アイコン/ボタン]:
  今回は「情報」アイコンと「OK」ボタンを表示させます。
  よって、64+0=64となります。
[タイトル]:
  ”あいさつ”

---------------------------------

f:id:m_kbou:20210208112250p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210225084521p:plain

②結果は以下の様に表示されます。情報アイコンと「おはようございます。」のメッセージが表示されます。また、ボタンは「OK」ボタンのみ表示され、「OK」ボタンが標準で選択されます。

f:id:m_kbou:20190424103245p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

サンプル①の説明については以上です。

 

サンプル②

[プログラミング例]:

Sub メッセージ()

  MsgBox "おはようございます。", 273, "あいさつ"

End Sub

各項目には以下内容を記述しました。

---------------------------------

[メッセージ]:
  ”おはようございます。”
[アイコン/ボタン]:
  今回は
   「警告」アイコン
   「OK」「キャンセル」ボタン
  を表示させます。
  また、第2ボタンを標準ボタンに設定します。
  よって、16+1+256=273となります。
[タイトル]:
  ”あいさつ”

---------------------------------

f:id:m_kbou:20210208114154p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210225084552p:plain

②結果は以下の様に表示されます。警告アイコンと「おはようございます。」のメッセージが表示されます。また、ボタンは「OK」「キャンセル」ボタンの2つが表示され、「キャンセル」ボタンが標準で選択されます。

f:id:m_kbou:20190424103703p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

サンプル②の説明については以上です。

 

サンプル③

[プログラミング例]:

Sub メッセージ()

  MsgBox "おはようございます。", 563, "あいさつ"

End Sub

各項目には以下内容を記述しました。

---------------------------------

[メッセージ]:
  ”おはようございます。”
[アイコン/ボタン]:
  今回は
   「注意」アイコン
   「はい」「いいえ」「キャンセル」ボタン
  を表示させます。
  また、第3ボタンを標準ボタンに設定します。
  よって、48+3+512=563となります。
[タイトル]:
  ”あいさつ”

---------------------------------

f:id:m_kbou:20210208114334p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210225084611p:plain

②結果は以下の様に表示されます。注意アイコンと「おはようございます。」のメッセージが表示されます。また、「はい」「いいえ」「キャンセル」ボタンの3つが表示され、「キャンセル」ボタンが標準で選択されます。

f:id:m_kbou:20190424103725p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

サンプル③の説明については以上です。

 

サンプル④

[プログラミング例]:

Sub メッセージ()

  MsgBox "おはようございます。"

End Sub

各項目には以下内容を記述しました。

---------------------------------

[メッセージ]:
  ”おはようございます。”
[アイコン/ボタン]:
  ※省略しました。
[タイトル]:
  ※省略しました。

---------------------------------

※今回は[アイコン/ボタン]及び[タイトル]は省略しました。

f:id:m_kbou:20210428142919p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210428142932p:plain

②結果は以下の様に表示されます。アイコンが無い状態で「おはようございます。」のメッセージが表示されます。また、ボタンは「OK」のみ表示され、「OK」ボタンが標準で選択されます。

f:id:m_kbou:20210428142944p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

サンプル④の説明については以上です。

 

サンプル⑤

[プログラミング例]:

Sub メッセージ()

  If MsgBox("おはようございます。", 321, "あいさつ") = 1 Then
    MsgBox "OKボタンが押されました。"
  End If

End Sub

今回はIF文を使用したMsgBoxの戻り値を判定する方法について紹介します。
各項目には以下内容を記述しました。

---------------------------------

[メッセージ]:
  ”おはようございます。”
[アイコン/ボタン]:
  今回は
   「情報」アイコン
   「OK」「キャンセル」ボタン
  を表示させます。
  また、第2ボタンを標準ボタンに設定します。
  よって、64+1+256=321となります。
[タイトル]:
  ”あいさつ”

---------------------------------

MsgBoxの戻り値を判定するためには、「MsgBox("おはようございます。", 321, "あいさつ")」の様にMsgBoxの後を「()」(カッコ)で囲みます。また、判定したい戻り値を比較演算子で結びつけます。今回は「=」(イコール)で結びつけ、「OK」ボタンが押されたか否かを判定するため「1」を指定します。

f:id:m_kbou:20210428150428p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210428150443p:plain

②情報アイコンと「おはようございます。」のメッセージが表示されます。また、ボタンは「OK」「キャンセル」ボタンの2つが表示され、「キャンセル」ボタンが標準で選択されます。今回は「OK」ボタンをクリックします。

f:id:m_kbou:20210428150458p:plain

③結果は以下の様になります。戻り値と一致するため、MsgBoxで「OKボタンが押されました。」が表示されます。

f:id:m_kbou:20210428150511p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

サンプル⑤の説明については以上です。

 

おわりに

MsgBoxを有効に使う事でユーザの入力間違えによる警告や判断作業を簡素化させる事がスムーズにできます。是非有効に活用し、使い勝手の良いツールを作成して下さい。