「vbmsgboxresultの使いかた」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。
VBA(Visual Basic for Applications)のMsgBox関数の戻りを受け取る変数を、普段IntegerやLongで宣言してらっしゃる方による検索です。
VbMsgBoxResultを使ったサンプルマクロ
VbMsgBoxResultを使った簡単なマクロをご紹介しておきます。
Sub VbMsgBoxResultを使ったサンプル()
Dim ans As VbMsgBoxResult
ans = MsgBox("ボタンを押してください。", vbYesNo)
If ans = vbYes Then
MsgBox "「はい」が押されました。"
End If
End Sub
VbMsgBoxResultは、上記のマクロのようにMsgBox関数の戻りを受ける変数の宣言文で使います。
VbMsgBoxResultとは
マクロ初心者のうちは、MsgBox関数の戻り値を代入する変数はIntegerやLongで十分だと思います。
ですが、オブジェクトブラウザーで調べるとわかるとおり、そもそもMsgBox関数はVbMsgBoxResult列挙に定義されている値を返すように作られているのです。
このVbMsgBoxResult列挙に、MsgBox関数の戻り値による条件分岐文を書くときに使う、vbYesやvbNoなどの定数が定義されています。
この、そもそもの作りにしたがってコードを書けば、上記のように宣言するのがMsgBox関数の本来の使い方なのです。
VbMsgBoxResultで宣言すれば自動メンバー表示が行われてコーディングも楽
上記のように
Dim ans As VbMsgBoxResult
と宣言しておけば、コーディング時に、下図のような自動メンバー表示が行われ、コーディングも楽になります。
MsgBox関数の戻り値を代入する変数をIntegerやLongで宣言していた場合には、このようなメンバー表示は行われません。
オブジェクト変数の宣言を、
Dim rng as Object
とした場合は自動メンバー表示されることはありませんが、
Dim rng as Range
としておけば、自動メンバー表示されコーディングが楽になるのと同じ話です。
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » MsgBox関数の戻り値VbMsgBoxResultとは
TrackBack:0
- TrackBack URL