VBA メッセージボックス使い方

VBAでメッセージボックスを表示する方法を紹介していきます。
処理が完了したときや、エラーメッセージを表示させるときに使用します。
使い方は簡単なので、是非やり方を覚えておきましょう。

MsgBoxの使い方

MsgBoxの使い方は、下記になります。

MsgBox(本文、ボタンの種類、タイトル、ヘルプファイル、コンテキスト)

本文以外は省略することができます。

本文のみの使い方

まずは一番シンプルな本文のみを入力する方法を紹介していきます。
例を見てみましょう。
メッセージボックスで「こんにちは」を表示してみましょう。

Private Sub cmdMsgbox_Click()
    MsgBox ("こんにちは")
End Sub

結果

メッセージに改行を入れる場合、「vbCrLf」を利用しましょう。

Private Sub cmdMsgbox_Click()
    MsgBox ("こんにちは" & vbCrLf & "ひろにもです")
End Sub

結果

このようにメッセージボックスを表示することができました。

とても簡単につかうことができますね。

メッセージボックスのスタイル

メッセージボタンのスタイルを変更してみましょう。
スタイルを変更することで、ボタンの種類やアイコンの表示を行うことができます。

ボタンの種類

先ほどはメッセ―が表示されて「OK」のボタンが表示されていましたが、
確認メッセージなど「OK」「キャンセル」など選択肢をボタンに与える方法を紹介していきます。

Private Sub cmdMsgbox_Click()
    
    Dim result As Long
    result = MsgBox("登録しますか?", vbOKCancel)
    
    If result = vbOK Then
        result = MsgBox("登録されました。", vbOKOnly)
    ElseIf result = vbCancel Then
        result = MsgBox("キャンセルされました。", vbOKOnly)
    End If
    
End Sub

解説
3行目:結果を格納する値
4行目:vbOKCancelで「OK」「キャンセル」のボタンを表示し、押したボタンの結果をresultに格納する
6-7行目:OKボタンを押下した時のメッセージを表示
8-9行目:キャンるボタンを押下した時のメッセージを表示

結果

  

このようにボタンの種類を変更することができます。

アイコンの表示

またメッセージのアイコンを設定することもできます。

Private Sub cmdMsgbox_Click()
    Dim result As Long
    result = MsgBox("こんにちは", vbInformation)
End Sub

結果

インフォメーションのマークが表示されています。

複数のスタイルの組み合わせ

複数のスタイルを組み合わせる場合は、「+」を利用しましょう。

Private Sub cmdMsgbox_Click()
    Dim result As Long
    result = MsgBox("登録しますか?", vbOKCancel + vbQuestion)
End Sub

結果

このように「クエスチョン」のアイコン + 「OK」「キャンセル」を組み合わせることができます。
また、他にも様々なスタイルがあるので一覧にしておきます。

メッセージボックス スタイル一覧

 

コード 意味
vbOKOnly 0 「OK」を表示
vbOKCancel 1 「OK」と「キャンセル」を表示
vbAbortRetryIgnore 2 「中止」と「再試行」と「無視」 を表示
vbYesNoCancel 3 「はい」と「いいえ」と「キャンセル」 を表示
vbYesNo 4 「はい」と「いいえ」を表示
vbRetryCancel 5 「再試行」と「キャンセル」を表示
vbCritical 16 「エラー」のアイコンを表示
vbQuestion 32 「クエスチョン]のアイコンを表示
vbExclamation 48 「警告」のアイコンを表示
vbInformation 64 「インフォメーション」のアイコンを表示
vbDefaultButton1 0 1番目のボタンを既定にする
vbDefaultButton2 256 2番目のボタンを既定にする
vbDefaultButton3 512 3番目のボタンを既定にする
vbDefaultButton4 768 4番目のボタンを既定にする
vbApplicationModal 0 アプリケーション モーダル。現在のアプリケーションでの作業を続行するには、ユーザーはメッセージ ボックスに応答する必要があります。
vbSystemModal 4096 システム モーダル。ユーザーがメッセージ ボックスに応答するまで、すべてのアプリケーションが中断します。

 

メッセージボックス結果一覧

 

コード 意味
vbOK 1 OK
vbCancel 2 Cancel
vbAbort 3 中止
vbRetry 4 再試行
vbIgnore 5 無視
vbYes 6 はい
vbNo 7 いいえ

 

タイトル

3つ目の引数を利用することで、メッセージボックスの左上のタイトルを編集することができます。
例を見てみましょう。

Private Sub cmdMsgbox_Click()

    Dim result As Long
    result = MsgBox("登録しますか?", vbOKCancel + vbQuestion, "登録確認")
    
    If result = vbOK Then
        result = MsgBox("登録されました。", vbOKOnly, "登録完了")
    ElseIf result = vbCancel Then
        result = MsgBox("キャンセルされました。", vbOKOnly,"キャンセル")
    End If
        
End Sub

結果

タイトル部分を編集することができました。

 

まとめ

今回はメッセージボックスの使用方法をまとめました。
MsgBox(メッセージ,スタイル,タイトル)で自由にメッセージボックスを編集できると思いますので、
是非利用してみてください。

 

EXCEL VBAの記事一覧

おすすめの記事