【VBAマクロ】メッセージボックスを表示させる方法【エクセル初心者向け】

スポンサードリンク
VBA
過去の自分
過去の自分

VBAを使って作ったマクロを実行したんだけど、
マクロが終了したタイミングがいまいちわからない…。
「マクロが終了しました」っていうメッセージを表示させることはできないの?

今の自分
今の自分

なるほど…。
では今回は、「マクロでメッセージボックスを表示させる方法」
VBAマクロ歴3年の私が、できるだけわかりやすく解説いたします。

スポンサードリンク

マクロでメッセージボックスを表示させる方法

「MsgBox」を使います。
まずは実行見本をどうぞ。

実行見本

ひとまず全コードと実行結果をご覧ください。
解説は後ほど行います。

全コード

Sub メッセージボックスを表示()
    MsgBox "マクロが終了しました"
End Sub

実行結果

実行見本

解説

※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。

プロシージャの作成

Sub メッセージボックスを表示()

End Sub

プロシージャなど、マクロの基礎は下記記事でわかりやすく解説しております。
コードだけではなく、開発タブの表示からマクロの保存まで知りたい方はご参考ください。

メッセージボックスを表示

    MsgBox "マクロが終了しました"

上記コードにて、メッセージボックスを表示させています。
「MsgBox」の後ろに表示させたいメッセージを書きましょう。

表示させるメッセージは「”(ダブルクォーテーション)」で囲ってください。

マクロが完成したら、実行して動作を確認しましょう。

実行テスト

自作のボタンを押してマクロを実行させることも可能です。
ボタンの作り方は、下記記事でわかりやすく解説しております。

スポンサードリンク

いろいろなメッセージボックス

前項ではシンプルなメッセージボックスを作りましたが、タイトルを表示させたり、キャンセルボタンを追加することも可能です。

タイトルを表示

Sub メッセージボックスを表示()
    MsgBox "マクロが終了しました", Title:="お知らせ"
End Sub

表示させたいメッセージの後ろに「,(カンマ)」を書いたら、「Title:=””」を書きましょう。
“”の中にタイトルとして表示させたい文字を入れてください。

タイトルあり

アイコンをつける

警告や注意など、危機感を表現したい場合は、アイコンをつけることができます。

Sub メッセージボックスを表示()
    MsgBox "マクロが終了しました", vbCritical
End Sub
vbCritical

Sub メッセージボックスを表示()
    MsgBox "マクロが終了しました", vbQuestion
End Sub
vbQuestion

Sub メッセージボックスを表示()
    MsgBox "マクロが終了しました", vbExclamation
End Sub
vbExclamation

Sub メッセージボックスを表示()
    MsgBox "マクロが終了しました", vbInformation
End Sub
vbInformation

改行

メッセージ内に「vbCrLf」を記述することで、その箇所で改行することができます。
「vbCrLf」は&で挟んでください。

Sub メッセージボックスを表示()
    MsgBox "マクロが終了しました" & vbCrLf & "お疲れさまでした"
End Sub
改行あり

変数を表示

変数をメッセージ内に表示させることも可能です。
こちらも変数を&で挟みましょう。

Sub メッセージボックスを表示()
    name = "Utatane"
    MsgBox "こんにちは「" & name & "」さん"
End Sub
変数を表示

ボタンの変更

「OK」ボタンだけでなく、「いいえ」や「キャンセル」ボタンを追加することもできます。
また、それぞれのボタンを押した際に違う処理をさせることができます。

Sub メッセージボックスを表示()

    Dim answer As VbMsgBoxResult

    answer = MsgBox("ファイルを保存しますか?", vbYesNoCancel + vbQuestion, Title:="確認")

    Select Case answer
        Case vbYes
            MsgBox "ファイルを保存しました"
        Case vbNo
            MsgBox "保存せずに終了しました"
        Case vbCancel
            MsgBox "操作をキャンセルしました"
    End Select

End Sub
いいえやキャンセルあり
条件分岐

デフォルトで選択されるボタンを設定できます。

Sub メッセージボックスを表示()

    Dim answer As VbMsgBoxResult

    answer = MsgBox("ファイルを保存しますか?", vbYesNoCancel + vbDefaultButton2 + vbQuestion, Title:="確認")

    Select Case answer
        Case vbYes
            MsgBox "ファイルを保存しました"
        Case vbNo
            MsgBox "保存せずに終了しました"
        Case vbCancel
            MsgBox "操作をキャンセルしました"
    End Select

End Sub

「vbDefaultButton2」を追加することで、2番目のボタン(今回の場合は「いいえ」)がデフォルトで選択されます。

いいえをデフォルトにした場合
スポンサードリンク

うまく動作しないときの対処法

エラーが発生する

コンパイルエラー・実行時エラー

コードに問題がある場合が多いです。
「”」や()など、2つセットの記号が片方だけになっていないかなど、コードを再確認しましょう。
セル名を「”」で囲っていない場合でもエラーが発生します。

警告表示

マクロが無効になっている表示

上記の表示が出た場合は、マクロが無効になっています。
エクセルに表示された「コンテンツの有効化」をクリックするか、下記記事を参考にセキュリティ設定を変更してください。

スポンサードリンク

最後に

マクロのVBAコードでメッセージボックスを表示させる方法を解説いたしました。

当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。

最後までお読みいただき、ありがとうございました。がんばってください!

タイトルとURLをコピーしました