メッセージボックスを表示[MsgBox関数]|CATIAマクロの作成方法
今回はVBAの中でも超基本となる『MsgBox関数』についての内容です。
メッセージの表示は簡単に書けて、しっかりとマクロが動いていることも目視で確認することができるため、VBA初心者が1番初めに学んでおくべき処理となっています。
今回学べる内容は以下のとおりです。
MsgBox関数の使い方(メッセージボックスを表示する方法)
MsgBox関数
『MsgBox関数』とはメッセージボックスを使ってメッセージを表示することのできる関数です。
これによりマクロの次の操作指示や、マクロの終了をユーザーに知らせることができます。
メッセージボックスを表示するには以下の構文を使います。
MsgBox (prompt, [ buttons ], [ title ],[ helpfile, context ])
※[]で囲まれているものは省略可
※helpfile, context は使う機会があまりないためここでの説明は割愛します。
興味のある方は「MsgBox helpfile」等で検索してみて下さい。
prompt
promptの部分にはメッセージの本文を入力します。
以下のようにダブルクォーテーション[“]で文字列を囲むことで、その文字列をメッセージとして表示することができます。
Sub Test()
MsgBox “Hello World”
End Sub
上記のコードをVBEのモジュール内に入力し、実行することで以下のようにメッセージボックスを表示することができます。
また、promptの入力は変数で行うこともできます。
たとえば以下のように書いても、上記と同じ結果を得ることができます。
Sub Test()
Dim STR As String
STR = “Hello World”
MsgBox STR
End Sub
これは「STR」という文字列型の変数に「Hello World」という文字列を入れ、MsgBox関数でその変数の中身を表示するという流れになっています。
buttons
MsgBox関数では以下のように、メッセージボックスのボタンのタイプを変更したり、アイコンを追加したりすることが出来ます。こういった変更を行いたい場合はbuttonsで設定を行います。
※buttonsの入力は必須ではないため何も書かないで省略することもできます。
省略した場合は「OK」ボタンのみでアイコン無しのメッセージボックスとなります。
ボタン/アイコンを設定する場合はbuttonsの部分に以下の表から、表示したいボタン/アイコンのコードを入力します。(表の「定数」の欄に書かれている「vbOKOnly」や「vbOKCancel」などのこと)
定数 | 値 | 説明 |
vbOKOnly | 0 | [OK] ボタンのみを表示します。 |
vbOKCancel | 1 | [OK] ボタンと [キャンセル] ボタンを表示します。 |
vbAbortRetryIgnore | 2 | [中止]、[再試行]、[無視] の各ボタンを表示します。 |
vbYesNoCancel | 3 | [はい]、[いいえ]、[キャンセル] の各ボタンを表示します。 |
vbYesNo | 4 | [はい] ボタンと [いいえ] ボタンを表示します。 |
vbRetryCancel | 5 | [再試行] ボタンと [キャンセル] ボタンを表示します。 |
vbCritical | 16 | [重大なメッセージ] アイコンを表示します。 |
vbQuestion | 32 | [警告クエリ] アイコンを表示します。 |
vbExclamation | 48 | [警告メッセージ] アイコンを表示します。 |
vbInformation | 64 | [情報メッセージ] アイコンを表示します。 |
MsgBox (“Hello World”,vbYesNo + vbInformation)
たとえば上記のコードの場合、[はい] ボタンと [いいえ] ボタンがあり、[情報メッセージ] アイコンのついた以下のようなメッセージボックスを開くことができます。
※上記のコードのままではエラーが発生してメッセージボックスを開くことはできません。
ボタンを設定する際は、押されたボタンの結果を受けとるための[変数]が必要になってきます。
以下のように書くことでエラーが発生することなく、設定したボタン/アイコンのついたメッセージボックスを開くことができます。
Sub Test()
Dim Response As Integer
Response = MsgBox (“Hello World”,vbYesNo + vbInformation)
End Sub
押されたボタンによって変数Responseには以下の表どおりに「値」が代入されます。
定数 | 値 | 説明 |
vbOK | 1 | [OK] |
vbCancel | 2 | [キャンセル] |
vbAbort | 3 | [中止] |
vbRetry | 4 | [再試行] |
vbIgnore | 5 | [無視] |
vbYes | 6 | [はい] |
vbNo | 7 | [いいえ] |
たとえば「はい」ボタンが押されたら変数Responseには「6」が代入されます。
これにより押されたボタンが何かを判定することができるため、処理の内容を条件によって分岐させることができます。
title
titleの部分にはメッセージボックスのタイトルを入力します。
titleの入力も必須ではないため何も書かないで省略することができます。
省略した場合は上記のようにタイトルが「CATIA V5」となります。
titleに入力するのはpromptと同じく文字列なので、promptと同じような書き方で以下のように入力します。(変数での入力も可)
MsgBox (“Hello World”,vbYesNo + vbInformation,”MyTitle“)
上記のコードを実行すると以下のようなメッセージボックスを開くことができます。
buttonsの設定はしないでtitleの入力だけしたいという場合は、buttonsの部分を空白にして以下のように書きます。この場合カンマ[,]の数が違うとエラーが発生するのでに注意して下さい。
Sub Test()
Dim Response As Integer
Response = MsgBox (“Hello World”, ,“MyTitle“)
End Sub
まとめ
今回はMsgBox関数についての内容でした。
いまはまだpromptとtitleを使って、任意のメッセージボックスが表示できればOKです。
今後、条件分岐文を学んでいくときに再びbuttonsについて触れる機会があるので、buttonsに関してはそれまでは理解できていなくても問題ありません。
MsgBox関数はExcelマクロでも使用するものなので、情報は多く転がっています。
本ページで理解できなかった方は検索すると様々なサイトで説明されているのでそれらも参考にしてみて下さい。
参考:VBA開発元のMicrosoft社のMsgBox関数の説明ページ
→MsgBox 関数 (Visual Basic for Applications) | Microsoft Docs
CATIAマクロを本気で勉強するなら