「inputbox データ型」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスが割とあります。
「excel vba inputbox返り値」
「エクセルvba inputbox 戻り値」
という検索キーワードも、同じことを調べていたのではないかという気がします。
VBAのInputBox関数、またはExcel VBAのApplication.InputBoxメソッドの戻り値のデータ型を調べていた方による検索ではないかと想像しています。
VBAのInputBox関数、Excel VBAのApplication.InputBoxメソッド、どちらかは上記の検索キーワードからはわかりませんが、この記事ではVBAのInputBox関数の戻り値の型について書いておきます。
InputBox関数の戻り値のデータ型を調べるサンプル
拙著『いちばんやさしいExcel VBAの教本』で何度も利用している、ローカルウィンドウを使って、ご自分の目で確認することをおすすめします。Dim tmp As Variant
tmp = InputBox("何か入力してください。")
Stop
End Sub
以上のような簡単なSubプロシージャを作って、ローカルウィンドウでInputBox関数の戻り値の型を調べられます。
データ型をローカルウィンドウで確認する
上記のSubプロシージャを実行すると、Stopステートメントで一時停止しますから、メニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示して、変数tmpの[型]欄を確認しましょう。
インプットボックスに「abc」と入力していた場合、下図のようになります。
宣言されていた型Variantと、InputBox関数の戻り値が代入されたあとの型Stringが、「Variant/String」と表示されています。
再度実行してインプットボックスに「1234」と入力した場合も、下図のとおり「Variant/String」と表示されます。
つまり、VBAのInputBox関数の戻り値は必ずString型だということです。
「1234」のように数値的なデータが入力されたとしても、です。
ちなみに、ここで使っているVariant型の変数にデータを代入してローカルウィンドウで調べるという方法は、多くの場面で使えます。だからこそ拙著では、VBEのデバッグツールの中でローカルウィンドウを、おすすめしています。
TypeName関数でデータ型を確認する
TypeName関数でも調べることができます。
先のSubプロシージャを以下のように編集します。Dim tmp
tmp = InputBox("何か入力してください。")
' Stop
MsgBox TypeName(tmp)
End Sub
この状態で実行した場合、インプットボックスに「abc」を入力すれば当然「String」とメッセージボックスに表示されます。
インプットボックスに「1234」と入力した場合でも「String」と表示されます。
ヒントでデータ型を確認する
InputBox関数がString型データを返すことは、コードウィンドウに表示されるヒントでも確認できます。
コードウィンドウ上で「InputBox」にカーソルがある状態でショートカットキー[Ctrl]+[I]を押すと、InputBox関数がどのように定義されているか、ヒントが下図のように表示されます。
このヒントにも「As String」と、どのような型のデータを返すのかが表示されています。
最終更新日時:2019-05-10 15:26
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » InputBox関数の戻り値の型