目次
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(メッセージ,スタイル,タイトル)で自由にメッセージボックスを編集できると思いますので、
是非利用してみてください。