メッセージボックス関数の使い方 – 条件分岐 –
今回は、メッセージボックス関数での条件分岐について解説します。メッセージボックス関数は、ExcelVBAでアプリを制作する際に、ユーザーに操作の順序を促す必要があるため、とても重要です。例えば、Excelで作ったアプリを終了する時に、何もユーザーに聞かないでアプリを閉じたら、何が起きているか分からずユーザーは戸惑ってしまいます。下記にExcelを保存して終了する際に、ユーザーに操作を確認するサンプルプログラムを書きます。
Dim msg As String
Dim title As String
Dim msgNum As Integer
msg = “Excel を保存して終了しますか?”
title = ” 終了”
msgNum = MsgBox(msg, vbYesNo + vbInformation, title)
If msgNum = vbYes Then
MsgBox ” 終了します”
Workbooks(“Book1.xlsx”).Close SaveChanges := True
Else
MsgBox ” キャンセルしました”
End If
プログラムの順序は、変数msgに、ダイアログボックスに表示される文字を代入します。titleには、ダイアログボックスに表示されるタイトルを代入します。msgNumの型がintegerなのは、MsgBox関数の戻り値が値だからです。
MsgBox(msg, vbYesNo + vbInformation, title)の中身は、
MsgBox(ダイアログボックスに表示されるメッセージ、表示されるボタンの種類+アイコンのスタイル、ダイアログボックスのタイトルバーに表示される文字列)
vbYesNoは「はい」ボタン「いいえ」ボタンを表示。
vbInformationは「情報メッセージアイコン」を表示。
となっています。条件分岐の式を見やすくするため、msgNum=vbYes として、用意されている定数を利用しています。ちなみに定数「vbYes」の値は「6」となっています。これでユーザーへExcelを終了するか聞いた上で、Excelを閉じることができます。