トップページ

#6_1 MsgBoxを用いた処理


対話型処理の基本MsgBox

通常Excelを使用していると、次のようなダイアログボックスでボタンの選択を促されるケースがよくあります。

このダイアログボックスでの選択によって、その後の処理は当然変わってきます。

今回からは、そのようなユーザーとの対話によってその後の処理を分岐させるような、対話型処理のマクロを構築していきましょう。

まずは第一歩としてMsgBox関数の構文を学びましょう。

MsgBox関数の構文

MsgBox関数は、次の引数から構成されています。

MsgBox(Prompt, Buttons, Title, Helpfile, Context)

引数についてそれぞれ見ていきますが、後半2つはほとんど使わない上に省略可能なので説明を省きます。

Pronpt: 省略不可。ボックス内に表示するメッセージ。

Buttons: 省略可。ボックス内に表示するボタンの種類・個数。

Title: 省略可。ボックス内のタイトルバーに表示するメッセージ。省略すると「Microsoft Excel」になる。

まずはダイアログボックスにボタンを設置する際のボタンの種類を列挙しておきます。

この組み込み定数はMsgBoxの引数のButtonsに代入して使用します。

ダイアログボックスにボタンを配置(引数Buttons)

まずはダイアログボックスで最も重要なボタンを配置する方法です。引数Buttonsに下記の組み込み定数を代入すればそれぞれに応じたボタンが設置されます。

ボタン 組み込み定数

vbOKOnly

vbOKCancel

vbAbortRetryIgnore

vbYesNoCancel

vbYesNo

vbRetryCancel

ボックス内にはボタンだけではなく、警告メッセージアイコンなどの、アイコンをいずれかを表示することができます。

内容 イメージ 組み込み定数
警告メッセージアイコン

vbCritical
問い合わせメッセージアイコン

vbQuestion
注意メッセージアイコン

vbExclamation
情報メッセージアイコン

vbInformation

これらボタンとアイコンの表示は、それぞれの引数を「+」で加算することで両方実現できます。

MsgBox "変数を正しく入力してください", vbRetryCancel + vbCritical, "実行エラー"

ダイアログボックスにタイトルを表示

MsgBox関数の引数Titleに文字列を代入することでタイトルを表示させることができます。

(上の例で言う「実行エラー」)

何も入力しなければ「Microsoft Excel」と表示されます。