MENU

【VBA】Msgboxを使ったメッセージ表示

エクセルマクロでユーザーに情報を伝えるために、MsgBox(メッセージボックス)は非常に便利なツールです。この記事では、MsgBox の基本的な使い方から応用例までを詳しく解説します。

基本的なMsgBoxの使い方

MsgBox 関数は、メッセージを表示するための最も基本的な方法です。

基本構文

MsgBox プロンプト, [ボタン], [タイトル], [ヘルプファイル], [コンテキスト]
  • プロンプト: 表示するメッセージを指定します。
  • ボタン(省略可): 表示するボタンの種類を指定します。
  • タイトル(省略可): メッセージボックスのタイトルを指定します。
  • ヘルプファイル(省略可): ヘルプボタンを表示するためのヘルプファイルを指定します。
  • コンテキスト(省略可): ヘルプコンテキストIDを指定します。

例1:基本的なMsgBox

次の例では、シンプルなメッセージを表示します。

Sub BasicMsgBox()
    MsgBox "Hello, World!"
End Sub

ボタンオプションの使用

MsgBox には、さまざまなボタンオプションを設定することができます。

例2: ボタンオプションの使用

次の例では、YesとNoのボタンを表示します。

Sub MsgBoxWithButtons()
    Dim response As Long
    response = MsgBox("続行しますか?", vbYesNo, "確認")
    
    If response = vbYes Then
        MsgBox "Yesが選択されました"
    Else
        MsgBox "Noが選択されました"
    End If
End Sub

アイコンの使用

メッセージボックスにアイコンを追加することができます。

例3: アイコンの使用

次の例では、情報アイコンを表示します。

Sub MsgBoxWithIcon()
    MsgBox "処理が完了しました", vbInformation, "情報"
End Sub
  • vbCritical:エラーメッセージアイコン
  • vbQuestion:質問アイコン
  • vbExclamation:警告アイコン
  • vbInformation:情報アイコン

MsgBoxの戻り値を利用する

MsgBox の戻り値を利用して、ユーザーの選択に応じた処理を行うことができます。

例4: MsgBoxの戻り値を利用

次の例では、Yes、No、Cancelのいずれかが選択されたかを判断します。

Sub MsgBoxReturnValue()
    Dim response As Long
    response = MsgBox("続行しますか?", vbYesNoCancel + vbQuestion, "確認")
    
    Select Case response
        Case vbYes
            MsgBox "Yesが選択されました"
        Case vbNo
            MsgBox "Noが選択されました"
        Case vbCancel
            MsgBox "Cancelが選択されました"
    End Select
End Sub

メッセージボックスの詳細設定

複数のオプションを組み合わせて、メッセージボックスの見た目や動作を細かく設定できます。

例5: 詳細設定

次の例では、デフォルトのボタンをNoに設定し、質問アイコンを表示します。

Sub MsgBoxWithDetailedSettings()
    Dim response As Long
    response = MsgBox("本当に削除しますか?", vbYesNo + vbDefaultButton2 + vbQuestion, "削除の確認")
    
    If response = vbYes Then
        MsgBox "削除されました"
    Else
        MsgBox "削除がキャンセルされました"
    End If
End Sub

まとめ

MsgBox を使えば、エクセルマクロでユーザーに簡単にメッセージを伝えることができます。基本的な使い方から、ボタンオプション、アイコンの使用、戻り値の利用、詳細設定まで、様々な方法でメッセージボックスを活用できます。この記事を参考にして、ぜひマクロの中で活用してみてください。

エクセルマクロに関する他の質問やリクエストがあれば、コメントで教えてください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

自動車メーカーで、VBAやRPAを用いた業務効率化・業務改善を行っております。

目次