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