5、VBAによるマクロの作成(応用編)
5−1、メッセージボックスの応用
メッセージボックスの応用
例)
※ここでの例は他の(基本編などの)例文とのつながりはありません。新規ファイルを用意してください。
「文字を入力しますか?」というメッセージボックスに「はい」「いいえ」ボタンを配置し、「はい」が選択されたら、B2セルに「メッセージボックスの応用」という文字を入力し、「いいえ」が選択されたら、文字は入力せずに「終了します」というメッセージを表示します。
Sub Sample()
Worksheets("Sheet1").Select
Rtn = MsgBox("文字を入力しますか?",vbYesNo,"選択")
If Rtn = vbYes Then
Range("B2") = "メッセージボックスの応用"
Else
MsgBox "終了します"
End If
End Sub【このコードの解説】
- Rtn = MsgBox("文字を入力しますか?",vbYesNo,"選択")
「MsgBox」に続けて( )の中にそのメッセージボックスの設定を記述します。( )の中は、「表示するメッセージ」、「配置するボタンの種類」、「タイトル」の順に記述します。今回の例では「はい」「いいえ」ボタンを配置するのでボタンの種類の記述は「vbYesNo」となります。
この他の種類については、+α講座の表を参照して下さい。
- 定数
メッセージボックスに表示されるボタン(「はい」「いいえ」ボタンなど)には、それぞれ定数(値)が割り当てられていて、その定数を判定することにより、処理を分岐させることができます。
例えば、「はい」ボタンの定数は「vbYes」、「いいえ」ボタンの定数は「vbNo」と決まっています。
変数「Rtn」はこの定数を格納するためのもので、メッセージボックスで「はい」ボタンを押した場合は、「vbYes」が、「いいえ」ボタンを押した場合は「vbNo」がそれぞれ格納されます。
- If Rtn = vbYes Then
Range("B2") = "メッセージボックスの応用"
Else
MsgBox "終了します"
End If
これは、押されたボタンの定数を判定し、処理を分岐する記述です。「はい」が押された場合は、「Rtn」には「vbYes」が格納されているので、B2セルに「メッセージボックスの応用」と入力されます。「いいえ」が押された場合は「Rtn」には「vbNo」が格納されているので、文字は入力されずに「終了します」というメッセージが表示されます。
+α講座
- ボタンの定数と値
ボタンの定数には、それぞれの代わりとなる値(数字)が用意されています。例えば、「はい」ボタンの場合、定数は「vbYes」でしたが、その代わりとなる値は「6」です。「いいえ」ボタンは定数が「vbNo」、値は「7」です。
また、メッセージボックスに配置するボタンの種類にも定数と値が用意されています。例えば「はい」「いいえ」ボタンの場合は定数が「vbYesNo」、値は「4」です。
この「値」を利用すると、今回の(例)は次のように書き換えることができます。Sub Sample()
Worksheets("Sheet1").Select
Rtn = MsgBox("文字を入力しますか?",vbYesNo,"選択")
If Rtn = vbYes Then
Range("B2") = "メッセージボックスの応用"
Else
MsgBox "終了します"
End If
End Sub↓ ↓ ↓ ↓ ↓ ↓
Sub Sample()
Worksheets("Sheet1").Select
Rtn = MsgBox("文字を入力しますか?", 4 ,"選択")
If Rtn = 6 Then
Range("B2") = "メッセージボックスの応用"
Else
MsgBox "終了します"
End If
End Sub
- メッセージボックスに配置できるボタン一覧
|
|
|
「OK」ボタンのみ |
|
|
「OK」ボタンと「キャンセル」ボタン |
|
|
「中止」「再試行」「無視」の3つ |
|
|
「はい」「いいえ」「キャンセル」の3つ |
|
|
「はい」と「いいえ」の2つ |
|
|
「再試行」と「キャンセル」の2つ |
|
|
- 押されたボタン一覧
|
|
|
「OK」 |
|
|
「キャンセル」 |
|
|
「中止」 |
|
|
「再試行」 |
|
|
「無視」 |
|
|
「はい」 |
|
|
「いいえ」 |
|
|