Digital_Neko

フリーランスプログラマー

メッセージボックス関数の使い方 – 条件分岐 –

今回は、メッセージボックス関数での条件分岐について解説します。メッセージボックス関数は、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を閉じることができます。