Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VbMsgBoxResult型とは

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

MsgBox関数の戻り値VbMsgBoxResultとは

「vbmsgboxresultの使いかた」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。

VBAのMsgBox関数の戻り値を受け取る変数を、おそらくIntegerやLongで宣言してらっしゃる方による検索でしょう。

[スポンサードリンク]

VbMsgBoxResultを使ったサンプルマクロ

VbMsgBoxResult列挙型を使った簡単なSubプロシージャをご紹介しておきます。

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列挙型に定義されている定数を返すように作られているのです。

MsgBox関数の戻り値VbMsgBoxResultとは

このVbMsgBoxResult列挙型には、MsgBox関数の戻り値による条件分岐文を書くときに使う、vbYesやvbNoなどの定数も定義されています。

MsgBox関数の戻り値VbMsgBoxResultとは

値順に並べると以下のとおりです。

定数
vbOK1
vbCancel2
vbAbort3
vbRetry4
vbIgnore5
vbYes6
vbNo7

この、そもそもの作りにしたがってコードを書けば、上記のように宣言するのがMsgBox関数の本来の使い方です。

VbMsgBoxResultで宣言すれば自動メンバー表示が行われてコーディングも楽

上記のように
  Dim ans As VbMsgBoxResult
と宣言しておけば、コーディング時に、下図のような自動メンバー表示が行われ、コーディングも楽になります。

MsgBox関数の戻り値VbMsgBoxResultとは

MsgBox関数の戻り値を代入する変数をIntegerやLongで宣言していた場合には、このようなメンバー表示は行われません。

オブジェクト変数の宣言を、
  Dim rng as Object
とした場合は自動メンバー表示されることはありませんが、
  Dim rng as Range
としておけば、自動メンバー表示されコーディングが楽になるのと同じ話です。

最終更新日時:2019-12-03 15:57

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VbMsgBoxResult型とは

「VBA関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.