01-VBA

ダイアログボックス|Excel VBA (Part.1)【MsgBox】基本文法編 | 現役エンジニア&プログラミングスクール講師

目標

MsgBoxについて理解して利用できる。
MsgBoxの書き方(文法)について理解する

MsgBoxの概要と構文

MsgBoxとは

ユーザーがシステムを対話形式で操作するためのダイアログボックスのことです。プログラム側からユーザーの操作に対して確認を行う時などに使われます。

MsgBoxの構文とプロシージャ

基本形の構文

まずは基本の形を確認します。構文は以下のとおりです。

構文Sub MsgBoxExpression1()
MsgBox “第1引数”
End Sub

※表示のみであればMsgBoxに続けて””の中にメッセージ(第1引数)を記述します。
第1引数には””(ダブルクオート)が必要です。

サンプルプロシージャ1

Sub MsgBoxExpression1()
    MsgBox "メッセージを表示します"
End Sub

実行結果

基本形の構文(変数に戻り値を代入)

構文Sub MsgBoxExpression2()
Dim msg As Integer
msg = MsgBox(“第1引数”)
Debug.Print msg
End Sub

MsgBoxで値を出力して変数に代入する場合は(””)でメッセージを囲います。
出力される値は「OK」のボタンをクリックしたときのvbOKという組み込み定数です。
vbOKは組み込み定数なので定数の箱に値が格納されています。
vbOKの場合は「1」が格納されています。

サンプルプロシージャ2

Sub MsgBoxExpression2()
    Dim msg As Integer
    msg = MsgBox("メッセージを表示します")
    Debug.Print msg
End Sub

実行結果

第2引数を利用する構文

構文Sub MsgBoxExpression3()
MsgBox “第1引数”, 第2引数
End Sub

※第2引数では組み込み定数を「ボタンの種類」か「アイコンの種類」、もしくは
「ボタンの種類+アイコンの種類」の両方を指定して利用することができます。
第2引数には””(ダブルクオート)は使いません。

サンプルプロシージャ3

第2引数に「ボタンの種類」か「アイコンの種類」の何れかを指定した場合

サンプルプロシージャ3とサンプルプロシージャ4は実行結果を載せていません。コピペして実行を確認してみてください。

Sub MsgBoxExpression3()
MsgBox "メッセージを表示します"

MsgBox "「OK」を表示します", vbOKOnly

MsgBox "「OK」「キャンセル」を表示します", vbOKCancel

MsgBox "「中止(A)」 「再試行(R)」 「無視(I)」を表示します", vbAbortRetryIgnore

MsgBox "「はい(Y)」 「いいえ(N)」 「キャンセル」を表示します", vbYesNoCancel

MsgBox "「はい(Y)」 「いいえ(N)」を表示します", vbYesNo

MsgBox "「再試行(R)」 「キャンセル」を表示します", vbRetryCancel

MsgBox "【警告】アイコンを表示します", vbCritical

MsgBox "【問い合せ】アイコンを表示します", vbQuestion

MsgBox "【注意】アイコンを表示します", vbExclamation

MsgBox "【情報】アイコンを表示します", vbInformation

End Sub

サンプルプロシージャ4

第2引数に「ボタンの種類」と「アイコンの種類」の両方を指定した場合

Sub MsgBoxExpression4()

MsgBox "許可が必要な処理です", vbOKOnly + vbExclamation

MsgBox "データが削除されます", vbOKCancel + vbExclamation

MsgBox "この操作はデータが消える恐れがあります", vbAbortRetryIgnore + vbCritical

MsgBox "こちらの処理を続けますか?", vbYesNoCancel + vbQuestion

MsgBox "こちらは営業部のデータです。よろしいですか?", vbYesNo + vbInformation

MsgBox "もう一度処理しますか?", vbRetryCancel + vbExclamation

End Sub

第3引数を利用する構文

構文Sub MsgBoxExpression5()
MsgBox “第1引数”, 第2引数, “第3引数”
End Sub

※第3引数にはダイアログボックスのタイトルを指定することができます。
引数には””(ダブルクオート)が必要です。

サンプルプロシージャ5

サンプルプロシージャ5は「MsgBox “「OK」を表示します”, vbOKOnly, “Titleを入力”」の実行結果のみを載せています。

Sub MsgBoxExpression5()

MsgBox "「OK」を表示します", vbOKOnly, "Titleを入力"

MsgBox "「OK」「キャンセル」を表示します", vbOKCancel, "Titleを入力"

MsgBox " 【警告】アイコンを表示します", vbCritical, "Titleを入力"

MsgBox " 【注意】アイコンを表示します", vbExclamation, "Titleを入力"

MsgBox "許可が必要な処理です", vbOKOnly + vbExclamation, "Titleを入力"

MsgBox "データが削除されます", vbOKCancel + vbExclamation, "Titleを入力"

MsgBox "こちらは営業部のデータです。よろしいですか?", vbYesNo + vbInformation, "Titleを入力"

MsgBox "もう一度処理しますか?", vbRetryCancel + vbExclamation, "Titleを入力"

End Sub

実行結果

第3引数にはダイアログボックスのタイトルを指定できます。第3引数を指定した場合は以下のようになります。

サンプルプロシージャ6

構文Sub MsgBoxExpression5()
MsgBox “第1引数”, , “第3引数”
End Sub

第2引数を省略する時は「,」が途中に必要です。

サンプルプロシージャ6は実行結果を載せていません。コピペして実行を確認してみてください。

Sub MsgBoxExpression6()

MsgBox "「OK」を表示します", , "Titleを入力"

End Sub

MsgBoxの「第4引数」と「第5引数」

MsgBoxの「第4引数」と「第5引数」

MsgBox の「第4引数」と「第5引数」は基本は空欄(省略)で使用することが多いです。この引数にはヘルプファイルとヘルプ内容に対応するコンテキスト番号を指定します。「第4引数」と「第5引数」は2つでセットなのでどちらかのみを省略することはできません。

ヘルプファイルとは

ヘルプファイルはOfficeの操作で分からないことなどを教えてくれるファイルのことです。HTMLファイルに記述してコンパイルして作成します。作成には専用のソフトがあります。ヘルプファイルは手順書のようなもので、あえて準備する必要はありません。

よく、Excelの操作でエラー表示が出た際に「ヘルプ」ボタンが表示されますが、それをクリックしたときに出力される操作説明(ブラウザなどに表示される手順書)がヘルプファイルです。

今回は以上となります。次回はMsgBoxの表示ボタンの戻り値について取り上げます。

初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
01-VBA

Excel VBA の 配列(サンプルプロシージャの利用)| 現役エンジニア&プログラミングスクール講師

2022年12月25日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

ExcelVBAのActiveSheetプロパティ | 現役エンジニア&プログラミングスクール講師

2022年8月10日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

ExcelVBAの「Worksheetsプロパティ」| 現役エンジニア&プログラミングスクール講師

2022年9月10日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

制御構文|Excel VBA (Part.6)【For Next】ネスト編(前編)| 現役エンジニア&プログラミングスクール講師

2022年11月25日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の イベント編(Part.3)「フォームコントロール」「ActiveX コントロール」| 現役エンジニア&プログラミングスクール講師

2022年12月30日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の「デバッグ」(Part.2)「ステップモード」「ブレークポイント」| 現役エンジニア&プログラミングスクール講師

2022年12月14日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site