VBA関数
MsgBox関数

Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
公開日:2013年5月以前 最終更新日:2021-08-14

MsgBox関数


MsgBox関数は、ダイアログ ボックスにメッセージを表示し、
ボタンがクリックされるのを待って、ユーザーがどのボタンをクリックされたのかを示す整数を返します。


MsgBox関数の構文

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

戻り値は、VbMsgBoxResult列挙です。

引数の説明

prompt 必ず指定します。
ダイアログ ボックス内にメッセージとして表示する文字列を示す文字列式を指定します。
名前付き引数 prompt に指定できる最大文字数は、1 バイト文字で約 1,024 文字です。
ただし、使う文字の文字幅に依存します。
名前付き引数 prompt に複数行を指定する場合は、キャリッジ リターン (Chr(13))、ライン フィード (Chr(10))、またはキャリッジ リターンとライン フィードの組み合わせ (Chr(13) & Chr(10)) を改行する位置に挿入し、行を区切ってください。
buttons 省略可能です。
表示されるボタンの種類と個数、使用するアイコンのスタイル、標準ボタン、メッセージ ボックスがモーダルかどうかなどを表す値の合計値を示す数式を指定します。
省略すると、名前付き引数 buttons の既定値 0 になります。
title 省略可能です。
ダイアログ ボックスのタイトル バーに表示する文字列を示す文字列式を指定します。
名前付き引数 title を省略すると、タイトル バーにはアプリケーション名が表示されます。
helpfile 省略可能です。
ダイアログ ボックスに状況依存のヘルプを設定するために、使用するヘルプ ファイルの名前を示す文字列式を指定します。
この引数は、表示するダイアログ ボックスの説明をヘルプを使って表示するときに指定します。
名前付き引数 helpfile を指定した場合は、引数 context も指定する必要があります。
context 省略可能です。
ヘルプ トピックに指定したコンテキスト番号を表す数式を指定します。
名前付き引数 context を指定した場合は、引数 helpfile も指定する必要があります。

名前付き引数です。
名前付き引数とは、あらかじめ定義された名前を持つ引数。
名前付き引数を使用すると、構文どおりに指定された順序で各引数に値を指定しなくても、任意の順序で値を設定することができます。
※名前付き引数については、第25回.名前付き引数について
引数とは、関数やメソッド等を呼び出すときに渡す値のことです。この引数を渡す時の記述方法として、名前付き引数があります。マクロVBAでの記述では、:=が使われます。この:=は名前付き引数のみで使用される記述になります。

しかし、MsgBox関数では、名前付き引数を使わずに、順番通りに指定する事の方が多いでしょう。

buttonsの定数

グループ 定数 内容
ボタンの種類 vbOKOnly 0 [OK] ボタンのみを表示します。
vbOKCancel 1 [OK] ボタンと [キャンセル] ボタンを表示します。
vbAbortRetryIgnore 2 [中止]、[再試行]、および [無視] の 3 つのボタンを表示します。
vbYesNoCancel 3 [はい]、[いいえ]、および [キャンセル] の 3 つのボタンを表示します。
vbYesNo 4 [はい] ボタンと [いいえ] ボタンを表示します。
vbRetryCancel 5 [再試行] ボタンと [キャンセル] ボタンを表示します。
アイコンの種類 vbCritical 16 警告メッセージ アイコンを表示します。
vbQuestion 32 問い合わせメッセージ アイコンを表示します。
vbExclamation 48 注意メッセージ アイコンを表示します。
vbInformation 64 情報メッセージ アイコンを表示します。
標準ボタン vbDefaultButton1 0 第 1 ボタンを標準ボタンにします。
vbDefaultButton2 256 第 2 ボタンを標準ボタンにします。
vbDefaultButton3 512 第 3 ボタンを標準ボタンにします。
vbDefaultButton4 768 第 4 ボタンを標準ボタンにします。
その他 vbApplicationModal 0 アプリケーション モーダルに設定します。メッセージ ボックスに応答するまで、現在選択中のアプリケーションの実行を継続できません。
vbSystemModal 4096 システム モーダルに設定します。メッセージ ボックスに応答するまで、すべてのアプリケーションが中断されます。
vbMsgBoxHelpButton 16384 ヘルプ ボタンを追加します。
VbMsgBoxSetForeground 65536 最前面のウィンドウとして表示します。
vbMsgBoxRight 524288 テキストを右寄せで表示します。
vbMsgBoxRtlReading 1048576 テキストを、右から左の方向で表示します。

その他は使用する必要はないでしょう。

各グループから値を 1 つずつ選択して加算した合計値を指定します。
メッセージ内容、ボタンの種類、アイコンの種類は、組み合わせを考慮しましょう。

戻り値の定数:VbMsgBoxResult列挙

定数 説明
vbOK 1 [OK]
vbCancel 2 [キャンセル]
vbAbort 3 [中止]
vbRetry 4 [再試行]
vbIgnore 5 [無視]
vbYes 6 [はい]
vbNo 7 [いいえ]

MsgBox関数の使用例

MsgBox "出来ました。"

VBA マクロ MagBox関数

メッセージのみ指定した場合です。
「OK」ボタンだけが表示されます。

MsgBox "出来ました。" & vbLf & "よかった"

VBA マクロ MagBox関数

リファレンスでは、
複数行を指定する場合は、キャリッジ リターン (Chr(13))、ライン フィード (Chr(10))、またはキャリッジ リターンとライン フィードの組み合わせ (Chr(13) & Chr(10)) を改行する位置に挿入し、行を区切ってください。
このように書かれていますが、

キャリッジ リターン (Chr(13))は、VbCr
ライン フィード (Chr(10))は、VbLf
キャリッジ リターンとライン フィードの組み合わせ (Chr(13) & Chr(10)) は、VbCrLf

VBAではこれらの定数が用意されています。
どれを使ってもこの場合は同じですが、VbLfで良いでしょう。 

MsgBox "出来ました。", vbOKOnly, "タイトル"

VBA マクロ MagBox関数

メッセージと、ボタンの種類と、タイトルを指定した場合です。
タイトルの出方を確認して下さい。

Dim rtn As VbMsgBoxResult
rtn = MsgBox("出来ましたか?", vbYesNo + vbQuestion + vbDefaultButton2, "確認")
Select Case rtn '押されたボタンの確認
  Case vbYes
    MsgBox "「はい」が押されました。"
  Case vbNo
    MsgBox "「いいえ」が押されました。"
End Select

VBA マクロ MagBox関数

ボタンの種類を、「はい」「いいえ」
アイコンの種類を、問い合わせアイコン
標準ボタンを、2番目のボタン

メッセージボクスの出方を確認して下さい。
押されたボタンを、戻り値で確認しています。
戻り値を取得する為、
= MsgBox
このように戻り値を受け取る場合は、引数を()括弧でくくります。
VBAでの括弧()の使い方、括弧が必要な場合
オブジェクトのメソッドや、プロシージャー(Sub、Function)を呼ぶときに、引数を括弧()で囲うのか、囲わないのか… 初心者が赤い文法エラーが出て悩むことの一つです。VBAでは、どんな時に括弧を付けて、どんな時に括弧を付けないのか… ・括弧が必要な場合 ・括弧が不要な場合 これらについて具体的な例とともに解説…


Office VBA リファレンス MsgBox関数


※VBA関数一覧
マクロVBA関数の一覧と解説です、どんな関数があるかは一度は確認しておくとをお勧めいたします。どんな関数があるだけでも知っておけば、詳細の使い方は実際に使うときに調べても良いでしょう。文字列操作…34 分岐…3 型変換…14 データ判定…10 日付時刻…20 配列…6 ファイル操作…14 数学/財務…28 その他……



同じテーマ「VBA関数」の記事

Hex関数

Hex関数は、指定した10進数値を16進数で表した文字列型(String)を返します。Hex関数 Hex(number) number 必ず指定します。任意の数式または文字列式を指定します。引数numberが整数でない場合、変換の前に一番近い整数に丸められます。
Oct関数
Oct関数は、引数に指定した値を8進数で表すバリアント型(内部処理形式StringのVariant)の値を返します。Oct関数 Oct(number) number 必ず指定します。任意の数式または文字列式を指定します。
Rnd関数
Rnd関数は、単精度浮動小数点数型(Single)の乱数を返します。Rnd関数 Rnd[(number)] number は省略可能です。引数numberには、単精度浮動小数点数型(Single)の数値または任意の有効な数式を指定します。
Round関数
Round関数は、指定された小数点位置で丸めた数値を返します。Round関数 Round(expression[,numdecimalplaces]) expression 必ず指定します。丸めを行う数式を指定します。
InputBox関数
InputBox関数は、ダイアログボックスにメッセージとテキストボックスを表示し、文字列が入力されるか、またはボタンがクリックされると、テキストボックスの内容を返します。InputBox関数 構文 InputBox(prompt[,title][,default][,xpos][,ypos] [,helpfile,
MsgBox関数
Environ関数
オペレーティングシステム(Windows)の環境変数に関連付けられた文字列を返します。Macintoshでは使用できません。デスクトップのパスやログインしているユーザーの名前を取得できます。IsNull関数の構文 Environ({envstring|number}) envstringまたはnumberのどちらか…
RGB関数
RGB関数は、引数(red,green,blue)の色のRGB値を表す長整数型(Long)の値を返します。RGB関数 RGB(red,green,blue) red 必ず指定します。この名前付き引数は、バリアント型(内部処理形式IntegerのVariant)のデータ形式で指定します。
DoEvents関数
DoEvents関数は、発生したイベントがOSによって処理されるように、プログラムで占有していた制御をOSに渡します。DoEvents関数 構文 DoEvents 説明 開かれているフォームの数を返します。開かれているフォームが無ければ0返します。
CreateObject関数
CreateObject関数は、ActiveXオブジェクトへの参照を作成して返します。CreateObject関数を使う事で、参照設定することなくActiveXオブジェクトを使用できるようになります。つまり、VBAで外部ライブラリを使用する場合にCreateObject関数を使用します。
GetObject関数
ActiveXコンポーネントから提供されたオブジェクトの参照を返します。ファイルパス(フルパスと名前)からオブジェクトの参照を作成したり、既に起動中のオブジェクトを取得する際に使用します。GetObject関数の構文 GetObject([pathname],[class]) pathname 省略可能。


新着記事NEW ・・・新着記事一覧を見る

エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.ひらがな⇔カタカナの変換|エクセル基本操作




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。


このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ