【VBA入門3/5】メッセージボックス全種類一覧表【実際の使い方も紹介】

msgboxeyecacth VBA
あなた
あなた
  • メッセージボックスの、使い方が知りたい
  • メッセージボックスはに色々あるけど、使い方がよくわからない
ベル
ベル

意外と多い、メッセージボックスの使い方
実際の入力方法を、見やすくまとめました

はじめまして。普段はメーカーで機械設計をしているベルと申します

この記事は、『入門者のExcelVBA』を参考に書いています

先にメッセージボックス一覧を示し、その後構文の解説をします

スポンサーリンク

メッセージボックス一覧表

メッセージボックスのコードと、その結果を一覧表にまとめました

結果コード
prompt_rMsgBox “文字だけ”基本中の基本。
buttons_1vbOK_rMsgBox “文字だけ”, vbOKOnlyボタンの種類を指定する。
書かなくても『OK』ボタンになる。
buttons_2vbOKCancel_rMsgBox “文字だけ”, vbOKCancelボタンが『OK』・『キャンセル』になる。
buttons_3vbARI_rMsgBox “文字だけ”, vbAbortRetryIgnoreボタンが『中止』・『再試行』・『無視』になる。
buttons_4vbYNC_rMsgBox “文字だけ”, vbYesNoCancelボタンが『はい』・『いいえ』・キャンセル』になる。
buttons_5vbYN_rMsgBox “文字だけ”, vbYesNoボタンが『はい』・『いいえ』になる。
buttons_6vbRC_rMsgBox “文字だけ”, vbRetryCancelボタンが『再試行』・『キャンセル』になる。
defaultbuttons_1vb_rMsgBox “文字だけ”, vbOKCancel + vbDefaultButton1選択されているボタンの位置を決める。
コード末尾の数字が、左端のからの位置を示す。
デフォルトで1番目なので、入力不要。
defaultbuttons_2vb_rMsgBox “文字だけ”, vbOKCancel + vbDefaultButton2ボタンの位置が左端から2番目
defaultbuttons_3vb_rMsgBox “文字だけ”, vbYesNoCancel + vbDefaultButton3ボタンの位置が左端から3番目
title_rMsgBox “文字だけ”, vbOKOnly, “タイトル”メッセージボックスのタイトルを変えられる。
タイトルを変えるには、なぜかボタンがデフォルトでよくても、ボタンのコードを入力しなければならない謎仕様。
icon_1vbC_rMsgBox “文字だけ”, vbCriticalメッセージボックスのアイコンを変えられる。
×印になる。
icon_2vbQ_rMsgBox “文字だけ”, vbQuestionメッセージボックスのアイコンを変えられる。
?マークになる。
icon_3vbE_rMsgBox “文字だけ”, vbExclamationメッセージボックスのアイコンを変えられる。
!マークになる。
icon_4vbI_rMsgBox “文字だけ”, vbInformationメッセージボックスのアイコンを変えられる。
I印になる。
other_1vb_rMsgBox “文字だけ”, vbMsgBoxHelpButtonメッセージボックスのボタンにヘルプボタンを追加する。
other_2vb_rMsgBox “文字だけ”, vbMsgBoxRightメッセージボックスの文字を右端に寄せる
コードをVBEにコピペすれば、そのまま使えます。VBEの使い方は次の記事を参照ください
ベル
ベル

DefaultButtonは、実は4まで用意されていますが、ほぼ使いません
そもそも、VBAのボタンは最大でも3つまで

ヘルプボタンを追加すれば、4つまで増えますが、そこまでボタンを増やすのはナンセンス

実際のメッセージボックスの使い方

私がメッセージボックスを使うのは、コードの内容が合っているのか、確認するために使います

理由は、「取得したい値が自分の意図した場所なのか?」、コード上でわからない時があるため

例えば、セルの位置を[行×列]以外の方法で、値を取得することがあります

ベル
ベル

「3行目のC列」のような具体的なセルの番地ではなく、「特定の値から、右に2個移動したところ」のようなイメージ

このとき、本当に自分が思っている”特定の値”

そこから、”右に2個移動したところ”にある、「自分が本当に取得したい値」を取得できているのか、コード上では確認できません

これを確認するために、「自分が本当に取得したい値」が入っているコードを、メッセージボックスに入れます

そうすることで、「自分の書いているコードに間違っていないか?」

これを確認しながらコードを作成するのに、メッセージボックスは有効です

ベル
ベル

一気にコードを書いてしまうと、意図しない結果が出たときに、どこが間違っているのかわかりません
これを防止するために、1行作ったらテスト

このテストのときに、メッセージボックスが非常に役立ちます

メッセージボックスの多用はNG

実際にVBAを組んだExcelを運用するとき、メッセージボックスを多用するのはNGです

理由は、ユーザーからすると、メッセージボックスが何度も出てくるのは煩わしいため

例えば、あなたのPCがエラーを起こします

この時、エラーメッセージが何度も出てくると、うっとうしく感じませんか?

このように、メッセージボックスが何度も出てくることに、人はストレスを感じやすいので、多用するのは控えましょう

ベル
ベル

この記事の参考にしている、『入門者のExcelVBA』でもメッセージボックスの多用は非推奨

メッセージボックスの構文

VBAにおける、メッセージボックスの構文は、下図の通り

msgboxsentence
ベル
ベル

上の一覧表を見ても構造がわからない方は、参照してください


これを、日本語訳すると、次のようになります

msgboxmeaning

Helpfileについて

この記事では、MsgBoxの構文に含めていませんが、実際には[Helpfile, Context]というコードも追記できます

[Helpfile]は使うことは稀ですが、解説している記事が少ないので、ここで解説しておきます

[Helpfile]とコードを追加することで、メッセージボックスにヘルプボタンを追加可能

さらに、[Context]で、ヘルプボタンが押された時に開くファイルを設定できます

[Context]には、”.chm”という拡張子のファイルを保管している、パスを入力することで、”.chm”開くことが可能になります

ベル
ベル

つまり、ヘルプボタンを追加して、押したときに開くファイルを指定できる 

ただ、実際にはヘルプボタンを使うことはほとんどありません

あなたが、ExcelやWordのヘルプボタンを押さないのと同じように、設定するだけ無駄


ということで、この記事では見やすさを優先して省略しました

ベル
ベル

メッセージボックスは、内容・タイトル・ボタンの設定方法だけ使えるようになればOK

まとめ:メッセージボックスの使い方を知りましょう

VBAでメッセージボックスを使う時には、この記事の一覧表を参考にしてみてください

表を見ても、「どこに何を入れればいいのかわからない」という方は、次の図を見て、メッセージボックスの構文の理解を深めて見ましょう

msgboxsentence

メッセージボックスの最終目標は、ユーザーに問いかけ、条件分岐をユーザーに決めてもらう

その上で、実行が完了した時の、通知として使うことと思います

そこを目指すためにも、この記事を参考に、いろいろなメッセージボックスを作ってみましょう

タイトルとURLをコピーしました