【Excelマクロ】MsgBox関数

Excelマクロ

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で簡単に実現できます。ぜひ試してみてください!

コメント