構文
構文は以下のとおりです。
解説
MsgBoxとは、「Message Box(メッセージボックス)」の略称です。ユーザーに対してメッセージを表示させることができます。例えば、データが保存されていない場合に警告メッセージを表示させたり、確認メッセージを表示させてから処理を進めたりすることができます。また、MsgBoxは戻り値を返します。戻り値の詳細を以下で紹介します。
引数 | 指定 | 内容 |
メッセージ内容 | 必須 | 表示させたいメッセージを指定します。 |
ボタンの種類 | 省略可 | ボタンの表示方法を指定します。指定しない場合はOKボタンが表示されます。ボタンの種類を以下で紹介します。 |
タイトル | 省略可 | メッセージボックスのタイトルを指定します。指定しない場合は「Microsoft Excel」がタイトルになります。 |
ヘルプファイル | 省略可 | ヘルプファイルのパスを指定します。 |
コンテキストID | 省略可 | ヘルプファイル内のコンテキストIDを指定します。 |
ボタンの種類には以下の設定値が指定できます。
定数 | 値 | 内容 |
vbOKOnly | 0 | [OK]ボタンのみを表示します。 |
vbOKCancel | 1 | [OK]ボタンと[キャンセル]ボタンを表示します。 |
vbAbortRetryIgnore | 2 | [中止]、[再試行]、および[無視]の3つのボタンを表示します。 |
vbYesNoCancel | 3 | [はい]、[いいえ]、および[キャンセル]の3つのボタンを表示します。 |
vbYesNo | 4 | [はい]ボタンと[いいえ]ボタンを表示します。 |
vbRetryCancel | 5 | [再試行]ボタンと[キャンセル]ボタンを表示します。 |
vbCritical | 16 | 警告メッセージアイコンを表示します。 |
vbQuestion | 32 | 問い合わせメッセージアイコンを表示します。 |
vbExclamation | 48 | 注意メッセージアイコンを表示します。 |
vbInformation | 64 | 情報メッセージアイコンを表示します。 |
vbDefaultButton1 | 0 | 第1ボタンを標準ボタンにします。 |
vbDefaultButton2 | 256 | 第2ボタンを標準ボタンにします。 |
vbDefaultButton3 | 512 | 第3ボタンを標準ボタンにします。 |
ボタンの戻り値については以下の通りです。
定数 | 値 | 内容 |
vbOK | 1 | [OK]ボタンが押された。 |
vbCancel | 2 | [キャンセル]ボタンが押された。 |
vbAbort | 3 | [中止]ボタンが押された。 |
vbRetry | 4 | [再試行]ボタンが押された。 |
vbIgnore | 5 | [無視]ボタンが押された。 |
vbYes | 6 | [はい]ボタンが押された。 |
vbNo | 7 | [いいえ]ボタンが押された。 |
使用例
MsgBox "処理が終了しました。"
MsgBox "処理が終了しました。" & vbLf & "(正常終了です)"
MsgBox "処理が終了しました。", vbOKOnly, "メッセージ"
使い方
具体的な使い方を紹介します。
例1:OKボタンを表示する場合
以下のコードを記述することで、メッセージボックスに「保存していいですか?」というメッセージが表示されます。OKボタンが表示され、OKボタンをクリックすると、処理が続行されます。
例2:OKキャンセルボタンを表示する場合
以下のコードを記述することで、メッセージボックスに「保存していいですか?」というメッセージが表示され、OKキャンセルボタンが表示されます。OKボタンをクリックすると、処理が続行されます。一方、キャンセルボタンをクリックすると、処理が中止されます。
'OKボタンがクリックされた場合の処理
'ここに処理を記述します。
Else
'キャンセルボタンがクリックされた場合の処理
'ここに処理を記述します。
End If
例3:Yes Noキャンセルボタンを表示する場合
以下のコードを記述することで、メッセージボックスに「本当に削除してもよろしいですか?」というメッセージが表示され、Yes Noキャンセルボタンが表示されます。Yesボタンをクリックすると、処理が続行されます。Noボタンをクリックすると、処理が中止されます。キャンセルボタンをクリックすると、メッセージボックスが閉じます。
Case vbYes
'Yesボタンがクリックされた場合の処理
'ここに処理を記述します。
Case vbNo
'Noボタンがクリックされた場合の処理
'ここに処理を記述します。
Case vbCancel
'キャンセルボタンがクリックされた場合の処理
'ここに処理を記述します。
End Select
プログラミング例
以下に、プログラミング例を紹介します。
例1:数値を入力させる
以下のコードを記述することで、メッセージボックスに「数値を入力してください。」というメッセージが表示され、ユーザーからの入力を受け付けます。入力された値が数値であるかどうかをチェックし、数値であれば、入力された値を2倍した値を表示します。数値でなければ、「数値を入力してください。」というメッセージが表示されます。
inputValue = InputBox("数値を入力してください。")
If IsNumeric(inputValue) Then
MsgBox inputValue * 2
Else
MsgBox "数値を入力してください。"
End If
例2:範囲を指定してデータを入力する
以下のコードを記述することで、メッセージボックスに「データを入力してください。」というメッセージが表示され、ユーザーからの入力を受け付けます。入力された値をA1セルに、入力された値の2倍をB1セルに、入力された値の3倍をC1セルに、それぞれ入力します。
inputValue = InputBox("データを入力してください。")
Range("A1").Value = inputValue
Range("B1").Value = inputValue * 2
Range("C1").Value = inputValue * 3
MsgBox "データを入力しました。"
例3:複数の条件に応じた処理
以下のコードを記述することで、メッセージボックスに「点数を入力してください。」というメッセージが表示され、ユーザーからの入力を受け付けます。入力された値が数値であるかどうかをチェックし、数値でなければ、「数値を入力してください。」というメッセージが表示されます。入力された値が90以上であれば、「優秀です。」というメッセージが、80以上90未満であれば、「良いです。」というメッセージが、それ以外の場合は「頑張りましょう。」というメッセージが表示されます。
inputValue = InputBox("点数を入力してください。")
If IsNumeric(inputValue) Then
Select Case inputValue
Case Is >= 90
MsgBox "優秀です。"
Case Is >= 80
MsgBox "良いです。"
Case Else
MsgBox "頑張りましょう。"
End Select
Else
MsgBox "数値を入力してください。"
End If
まとめ
MsgBoxは、処理を中断してメッセージを表示する際に非常に便利なツールであり、様々な種類のメッセージボックスを表示することができます。また、MsgBoxを使ったプログラミング例をいくつか紹介しましたが、これらはあくまでも参考として、自分で使い方を工夫して使ってみることが大切です。是非活用してください。