教えて!ExcelVBA!

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

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

f:id:m_kbou:20200418100639p:plain

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

 

 

構文

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

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

[説明]:
[メッセージ]には表示するメッセージ内容を記述します。また、[アイコン+ボタン]にはアイコンの種類とボタンの種類を記述します。それぞれの種類については数字で表す事ができるため、その数値の合計値を記述します。以下に一覧を纏めたので参考にして下さい。[タイトル]にはメッセージ画面のタイトル名を記述します。また、各項目間は「,」(カンマ)で区切り、[メッセージ]と[タイトル]については「”」(ダブルクォーテーション)で囲みます。(※[アイコン+ボタン]及び[タイトル]については省略する事も可能です)

f:id:m_kbou:20210428141756p:plain

[記述例]:

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

画面の各パーツ詳細は以下の通りとなります。 

f:id:m_kbou:20190513181558p: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, "あいさつ")」の様に「”[メッセージ]”,[アイコン+ボタン],”[タイトル]”」の部分を「()」(カッコ)で閉じます。また、上記の戻り値一覧で説明したどの戻り値と同じになるか否かを判定させるため、「=」(イコール)で結びつけます。今回の事例では戻り値が「1」と同じになるか否かを判定しているため、「OK」ボタンが押されたか否かを判定する内容となります。

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