ITサポーターTsuchida

VBA Stepup12

第12章 メッセージボックス

MsgBox関数を使用すると、VBAの処理の途中にメッセージを表示するメッセージボックス(ダイアログボックス)を表示することができます。 処理結果をメッセージ表示させたり、処理を続行するかどうか判断を尋ねる時などに使用します。

MsgBox関数の引数は以下の通りとなります。

MsgBox(prompt, buttons, title)

prompt

メッセージを表示する文字列のことで、必ず指定します。

指定した文字列の数によって、メッセージボックスの幅が決まります。 メッセージの途中で改行したい場合は、メッセージの途中に改行コード(キャリッジリータンとラインフィード)のvbCrLfを半角の&(アンパサンド)で囲って挿入します。

buttons(省略可能)

ボタンの種類をしてします。よく使用するボタンは以下のとおりです。

ボタンの引数 表示されるボタン
vbOKOnly [OK]ボタンのみを表示(省略時)
vbOKCancel [OK] 、[キャンセル]の2つのボタンを表示
vbYesNoCancel [はい]、[いいえ]、[キャンセル]の3つのボタンを表示
vbYesNo [はい]、[いいえ]の2つのボタンを表示
title(省略可能)

メッセージボックスのタイトルの文字列を指定します。

 

MsgBox関数の戻り値(どのボタンが押されたか)
>
定数 ボタン
vbOK 1 [OK] ボタン
vbCancel 2 [キャンセル]ボタン
vbYes 6 [はい] ボタン
vbNo 7 [いいえ] ボタン

MsgBox関数の使用方法

例1.確認メッセージの表示

MsgBox "処理はすべて終わりました。" & vbCrLf & _

"OKボタンをクリックしてください。"

例2.終了の確認

Dim ynBtn As Integer

ynBtn = MsgBox("終了しますか?", vbYesNo, "終了確認")

If ynBtn = vbno then

Exit Sub

End If

Application.Quit

ThisWorkbook.Close SaveChanges:=False

MsgBox関数は、どのボタンが押されたかを変数に返します。どのボタンを押されたかは変数で判断します。 MsgBox関数は、マクロを実行するうえで対話式で確認をしながら判断するときに使用します。

マクロを実行する人が他の人の場合、MsgBox関数を使うとちょっと親切なマクロになります。