通常、メッセージボックスには、[OK]ボタンが表示されますが、これを他のボタンに変更する技です。
【マクロ】
Sub MSGBOX_Buttons_例()
'選択ボタン付きのメッセージ表示
Dim myMessage As String 'メッセージの内容
Dim myTitle As String 'タイトル
Dim myStyle As String 'ボタン
Dim myAnswer As String '回答
'変数の設定
myMessage = "メッセージ"
myTitle = "タイトル"
myStyle = vbYesNo Or vbQuestion
myAnswer = MsgBox(prompt:=myMessage, Title:=myTitle, Buttons:=myStyle)
'場合分け(myAnserの内容で、実行内容を変更)
Select Case myAnswer
Case vbYes
'[はい(Y)]を選択したときの実行内容
Case vbNo
'[いいえ(N)]を選択したときの実行内容
End Select
End Sub
【解説】
上記で青文字で書いたとおり、前回の記事 にてアイコンを設定した項目に、ボタンの設定も同時に行います。
![みんなのワードマクロ](https://stat.ameba.jp/user_images/20110424/10/gidgeerock/71/f7/p/t02200166_0320024111184156304.png?caw=800)
このような表示になります。
myStyle = vbYesNo Or vbQuestion
このとおりですよね。
YesとNoのボタンがあって、Qestionのアイコンが表示される。
また、赤文字で書いた部分も重要なポイントですね。
上記の通り、[はい(Y)]と[いいえ(N)]を選択することにしていますので、その選択結果によって実行内容を変更する仕掛けです。
myAnswerという変数に、メッセージボックスで回答した値を代入しています。
そして、このmyAnswerの値で、処理を変更しています。
このような仕掛けのことを条件分岐とよびますが、プログラミングで大変重要な部分ですね。
また、この条件分岐を学ぶと、プログラミングが楽しくなってきますね。
条件分岐については、5月25日(土)の第6回ワードマクロ勉強会 in 名古屋 で取り上げますので、ご興味があるかたはご参加ください。
なお、上記の条件分岐の書き方については、今は、「こんなものか」とご理解ください。
【マクロ例】
Sub MSGBOX_Buttons_2()
'ボタン付きのメッセージ表示
Dim myMessage As String 'メッセージの内容
Dim myTitle As String 'タイトル
Dim myStyle As String 'ボタン
Dim myAnswer As String '回答
'変数の設定
myMessage = "今、お仕事中ですか?"
myTitle = "あいさつのしかた"
myStyle = vbYesNo Or vbQuestion
myAnswer = MsgBox(prompt:=myMessage, Title:=myTitle, Buttons:=myStyle)
'場合分け(myAnserの内容で、実行内容を変更)
Select Case myAnswer
Case vbYes
MsgBox "その仕事に役立ちそうなマクロあるけど、5分だけ試してみる?"
Case vbNo
MsgBox "ほら、このマクロ、ちょっとヤバイかも。試してみる?"
End Select
End Sub
【解説】
質問への回答により、表示するメッセージを変更します。
![みんなのワードマクロ](https://stat.ameba.jp/user_images/20110424/10/gidgeerock/69/81/p/t02200166_0320024111184172034.png?caw=800)
[はい(Y)]の場合
![みんなのワードマクロ](https://stat.ameba.jp/user_images/20110424/10/gidgeerock/cf/55/p/t02200095_0518022311184172033.png?caw=800)
[いいえ(N)]の場合
![みんなのワードマクロ](https://stat.ameba.jp/user_images/20110424/10/gidgeerock/3f/09/p/t02200107_0457022311184172035.png?caw=800)
マクロの自慢をしたいだけでした(笑)。
▼関連記事
メッセージボックスの目次
第6回ワードマクロ勉強会 in 名古屋 (条件分岐を題材にします)
マクロコードの登録方法 (上記マクロをワードで実行する方法です)