VBAを学び始めると、最初によく使うのが MsgBox です。
例えば、次のようなことはありませんか?
- 処理結果を表示したい
- エラーをユーザーへ知らせたい
- Yes/Noで確認したい
このような場合は、MsgBox関数を使うことで簡単に実現できます。
VBAでは最も使用頻度が高い関数の1つです。
この記事では、MsgBoxの基本から実務で使える応用までを初心者向けに分かりやすく解説します。
この記事でできること
- メッセージを表示できる
- Yes/Noボタンを使える
- アイコン付きメッセージを表示できる
- 実務で使えるコードが分かる
基本:MsgBoxの使い方
基本構文はこちらです。
MsgBox "表示するメッセージ"
例:
MsgBox "こんにちは"
メッセージボックスが表示されます。
基本例
Option Explicit
Sub MsgBoxBasic()
MsgBox "処理が完了しました"
End Sub
改行する方法
vbCrLf を使うことで改行できます。
MsgBox "1行目" & vbCrLf & "2行目"
表示結果:
1行目
2行目
タイトルを付ける
MsgBox "保存しました", , "完了"
タイトルバーに「完了」が表示されます。
アイコンを表示する
| 定数 | 内容 |
|---|---|
| vbInformation | 情報アイコン |
| vbExclamation | 警告アイコン |
| vbCritical | エラーアイコン |
| vbQuestion | 質問アイコン |
例
MsgBox "保存しました", vbInformation, "完了"
Yes / No ボタンを使う
確認メッセージでよく使います。
Dim result As VbMsgBoxResult
result = MsgBox("削除しますか?", vbYesNo + vbQuestion)
If result = vbYes Then
MsgBox "削除しました"
Else
MsgBox "キャンセルしました"
End If
使用できるボタン一覧
| 定数 | 内容 |
|---|---|
| vbOKOnly | OKのみ |
| vbOKCancel | OK / キャンセル |
| vbYesNo | はい / いいえ |
| vbRetryCancel | 再試行 / キャンセル |
| vbYesNoCancel | はい / いいえ / キャンセル |
セルの値を表示する
MsgBox Range("A1").Value
変数の値を表示する
Dim name As String
name = "田中"
MsgBox "名前:" & name
実務でよく使う例
① 処理完了メッセージ
MsgBox "処理が完了しました", vbInformation
② エラーメッセージ
MsgBox "入力してください", vbExclamation
③ 削除確認
If MsgBox("削除しますか?", vbYesNo) = vbYes Then
Rows(1).Delete
End If
実務での活用例
- エラー通知
- 処理完了通知
- 確認メッセージ
- デバッグ確認
VBAでは毎日のように使う重要機能です。
注意点
① 処理が停止する
MsgBox表示中はVBAが停止します。
② 表示しすぎに注意
実務では大量表示すると操作性が悪くなります。
③ Debug.Printとの使い分け
開発中はDebug.Printの方が便利な場合もあります。
よくあるエラーと対処法
① ボタン判定が動かない
戻り値を確認してください。
② 改行されない
vbCrLf を使用してください。
③ コードは正しいのにエラーになる
コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。
まとめ
- MsgBoxはメッセージ表示の基本関数
- Yes/No確認も可能
- アイコン表示にも対応
- VBAで最重要レベルの関数
MsgBoxを使いこなせるようになると、ユーザーに分かりやすいVBAが作れるようになります。
VBA学習では必須の関数なので、ぜひマスターしておきましょう。

コメント