メッセージボックスを表示[MsgBox関数]|CATIAマクロの作成方法

今回はVBAの中でも超基本となる『MsgBox関数』についての内容です。
メッセージの表示は簡単に書けて、しっかりとマクロが動いていることも目視で確認することができるため、VBA初心者が1番初めに学んでおくべき処理となっています。

今回学べる内容は以下のとおりです。

 MsgBox関数の使い方(メッセージボックスを表示する方法)

 

MsgBox関数

『MsgBox関数』とはメッセージボックスを使ってメッセージを表示することのできる関数です。
これによりマクロの次の操作指示や、マクロの終了をユーザーに知らせることができます。

メッセージボックスを表示するには以下の構文を使います。

icon-code MsgBox関数

MsgBox (prompt, [ buttons ], [ title ],[ helpfile, context ])
※[]で囲まれているものは省略可

helpfile, context は使う機会があまりないためここでの説明は割愛します。
  興味のある方は「MsgBox helpfile」等で検索してみて下さい。

 

prompt

promptの部分にはメッセージの本文を入力します。
以下のようにダブルクォーテーション[“]で文字列を囲むことで、その文字列をメッセージとして表示することができます。

icon-code MsgBox関数(prompt)①

Sub Test()
 MsgBox “Hello World
End Sub

上記のコードをVBEのモジュール内に入力し、実行することで以下のようにメッセージボックスを表示することができます。

 
また、promptの入力は変数で行うこともできます。
たとえば以下のように書いても、上記と同じ結果を得ることができます。

icon-code MsgBox関数(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 [情報メッセージ] アイコンを表示します。
icon-code MsgBox関数(buttons)①

  MsgBox (“Hello World,vbYesNo + vbInformation)

たとえば上記のコードの場合、[はい] ボタンと [いいえ] ボタンがあり、[情報メッセージ] アイコンのついた以下のようなメッセージボックスを開くことができます。

※上記のコードのままではエラーが発生してメッセージボックスを開くことはできません。

ボタンを設定する際は、押されたボタンの結果を受けとるための[変数]が必要になってきます。
以下のように書くことでエラーが発生することなく、設定したボタン/アイコンのついたメッセージボックスを開くことができます。

icon-code MsgBox関数(buttons)②

Sub Test()
 Dim Response As Integer
  ResponseMsgBox (“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と同じような書き方で以下のように入力します。(変数での入力も可)

icon-code MsgBox関数(title)①

MsgBox (“Hello World”,vbYesNo + vbInformation,”MyTitle“)

上記のコードを実行すると以下のようなメッセージボックスを開くことができます。

 
buttons
の設定はしないでtitleの入力だけしたいという場合は、buttonsの部分を空白にして以下のように書きます。この場合カンマ[,]の数が違うとエラーが発生するのでに注意して下さい。

icon-code MsgBox関数(title)②

Sub Test()
 Dim Response As Integer
  ResponseMsgBox (“Hello World,  ,MyTitle)
End Sub

 

まとめ

今回はMsgBox関数についての内容でした。

いまはまだprompttitleを使って、任意のメッセージボックスが表示できればOKです。

今後、条件分岐文を学んでいくときに再びbuttonsについて触れる機会があるので、buttonsに関してはそれまでは理解できていなくても問題ありません。

MsgBox関数はExcelマクロでも使用するものなので、情報は多く転がっています。
本ページで理解できなかった方は検索すると様々なサイトで説明されているのでそれらも参考にしてみて下さい。

参考:VBA開発元のMicrosoft社のMsgBox関数の説明ページ
MsgBox 関数 (Visual Basic for Applications) | Microsoft Docs

 
 
目次へ戻る
 

icon-book CATIAマクロを本気で勉強するなら

 

2020年4月17日CATIA, CATIAマクロ

Posted by Lic