ExcelVBAでメッセージボックスを出す備忘録です。
単純にメッセージを出す場合や、メッセージボックスに出すボタンの
クリックによってその後の処理を変えたい時など
いろいろ使い道があります。
メッセージボックスを使う①メッセージを出す
もっともシンプルな、メッセージを出すものはこちらです。
Sub msgtest01()
MsgBox "テスト"
End Sub
結果はこちらです。
標準のメッセージは、タイトルはMicrosoft Excelとなります。
メッセージボックスのタイトルだけを変える
タイトルを自分の好きなようにつける場合は下記のように
, ,(カンマ、スペース、カンマ)を入れ、
その次に”(ダブルクォーテーション)で囲って文字列を入れます。
Sub msgtest02()
MsgBox "テスト", , "タイトル"
End Sub
結果はこちらです。
メッセージボックスの構成
カンマとスペース、カンマはその間の設定を省略するという設定です。
では、その省略された設定というのは何でしょうか?
それはメッセージボックスのボタン、メッセージボックスに出すアイコンの種類です。
メッセージボックスの構成はこのようになっています。
msgbox "メッセージボックスの出す文字列",(ボタンの種類),(アイコンの種類),"(タイトル)"
詳しい設定方法はこちらです。
上記を全部記載した例はこちらです。
MsgBox "テスト", vbOKOnly, "タイトル"
結果はこちらです。
メッセージボックスを使う②「はい」ボタンが押された場合
メッセージボックスを出して、ボタンに「はい」、「いいえ」を設定した場合
「はい」を選択した場合の処理と「いいえ」を選択した場合の処理があると思います。
その場合はどうするか?
例)続けますか?とメッセージボックスを出し、「はい」が押されたら続行する。
Dim ret As Long
ret = MsgBox("続けますか?", vbYesNo)
If ret = 6 Then
MsgBox "続行"
Else
MsgBox "終了"
End If
vbYesNoを使っているので、ボタンには「はい」、「いいえ」が表示されます。
「はい」が押されると、retに6が入るので(上の図参照)
if文でretの値が6か判断します。
「いいえ」ボタンを押された場合や、×で閉じられると、retに6が入らないので
それ以外の処理になります。
メッセージボックスを使う③長いメッセージを改行する
長いメッセージを出す場合、読みやすくするために改行します。
いくつか方法がありますが、ここではvbCrを使います。
MsgBox "あああああああああああああああああああああああああああああ" & vbCr _
& "かかかかかかかかかかか"
結果はこちらです。
ほかにも、chr(13)やchr(10)を使う方法もあります。(この2つを両方使うのも見たことがあります)