MsgBox関数の基本的な使い方
MsgBox関数は、VBAでメッセージを表示する際に使用する非常に便利な関数です。
マクロを実行して、完了しても特にメッセージは表示されません。そのため、いつ終わったかがわかりづらく、作るマクロにもよりますが、私がマクロを組む際には基本的に最後に入れるようにしています。
MsgBox関数の使い方として、次のコードでメッセージを表示できます。
MsgBox "完了しました"
このコードを実行すると、「完了しました」というメッセージが表示され、「OK」ボタンだけが表示されます。
MsgBox関数の引数設定
MsgBox関数には、以下のような引数を設定することで、表示内容をカスタマイズできます。
1. タイトルの設定
メッセージボックスのタイトル部分を変更する場合は、Title引数を使用します。
例)タイトルを設定する
MsgBox "完了しました", Title:="完了"
このコードを実行すると、メッセージボックスのタイトル部分に「完了」と表示されます。

2. マークの設定
メッセージボックスにアイコンを追加して意味を分かりやすくするには、Buttons引数を使用します。
引数で指定できるものとしては、次のものがあります。
vbCritical:エラー
vbQuestion:疑問
vbExclamation:警告
vbInformation:情報メッセージ
例)エラーメッセージを表示
MsgBox "完了できませんでした", Buttons:=vbCritical, Title:="エラー"
このコードを記載すると、タイトルには「エラー」、マーク(Buttons)として「エラーマーク」が表示されます。

3. ボタンの設定
メッセージボックスに表示するボタンをカスタマイズすることも可能です。
主なボタンの種類は次のとおりです。
vbOKOnly:OKボタンのみ
vbOKCancel:OKとキャンセル
vbAbortRetryIgnore:中止、再試行、無視
vbYesNoCancel:はい、いいえ、キャンセル
vbYesNo:はい、いいえ
vbRetryCancel:再試行、キャンセル
例)はい/いいえのボタンを表示
MsgBox "完了できませんでした", Buttons:=vbCritical + vbYesNo, Title:="確認"
使い方としては、少し特殊ですが、「+」マークを利用して、今回の「ボタン」の設定と「マーク」の設定を「ボタン+マーク」にして指定をします。
このコードでは、「完了できませんでした」というメッセージに「はい」と「いいえ」のボタンが表示されます。

ボタン選択後の処理
メッセージボックスでボタンを選択した後の処理を設定するには、If〜End If文を使用します。
例)はい/いいえの処理
r = MsgBox("本当に削除しますか?", Buttons:=vbYesNo + vbCritical, Title:="確認")
If r = vbYes Then
' 「はい」を選択した場合の処理
MsgBox "削除を実行しました"
Else
' 「いいえ」を選択した場合の処理
MsgBox "削除をキャンセルしました"
End If
ボタンを押した時の処理としては、「r」という変数に、MsgBoxで選択した「はい(vbYes)」か、「いいえ(vbNo)」が入る仕組みです。
「はい」の場合には「r」に「vbYes」が入るので、その場合には、「削除を実行しました」、「いいえ」の場合には「vbNo」が入るので「削除をキャンセルしました」というメッセージが表示される仕組みです。
本来はここに削除するコードを追加して、本当に削除する動作を入れますが、今回は説明のために省略しています。
このように、Buttonsに処理を追加すれば、選択したボタンに応じた処理を実行することができます。
まとめ
MsgBox関数を使えば、簡単にメッセージを表示することができます。
引数として、Bottonsでマークやボタンを設定することができ、Titleでタイトルの設定をすることができます。
また、ボタンの内容に応じて、処理を分けるにはIf〜End If文と組み合わせるとより実務的な動きをさせることができます。
これらの基本を押さえれば、利用者の操作に応じた動作をVBAで簡単に実現できます。ぜひ試してみてください!
コメント