「vba 変数 型 調べる」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
いくつかの可能性が考えられる検索キーワードですけれど、VBA(Visual Basic for Applications)のデバッグ中に、何らかの変数の型がどうなっているのか調べる方法を探していた方による検索かな、と想像しています。
TypeName関数を使わなくてもいいのでは?
上記のキーワードで検索してみると、VBAのTypeName関数を使う方法が、ネット上ではよく紹介されているようです。
確かにTypeName関数を使えば、変数の型を調べられますが、TypeName関数を使ったコードを入力しなくても済む方も、いらっしゃるような気がしています。
VBE(Visual Basic Editor)のローカルウィンドウで確認すれば済んでしまう方も、少なからずいらっしゃるように思うのです。
ローカルウィンドウで変数の型を確認する
簡単なExcelマクロでの例をご紹介します。
Dim a, b, c, d
a = 1
b = 1.1
c = "1.1"
Set d = Cells(1, 1)
Stop
End Sub型を指定せずに変数を宣言して、
Dim a, b, c, d
それぞれの変数に数値・文字列を代入して、
a = 1
b = 1.1
c = "1.1"
Cellsプロパティで1行目1列のセルを表すRangeオブジェクトを取得して、セットしているだけのマクロです。
Set d = Cells(1, 1)
上記のマクロを実行するとStop文の箇所でステップ実行モードになります。
この時点でVBE(Visual Basic Editor)のメニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示します。
すると下図のような状態になっているはずです。
[型]欄に、型がしっかりと表示されています。
このようにステップ実行中にローカルウィンドウを見るだけで、済んでしまう方が、
「vba 変数 型 調べる」
といった検索をなさった方の中に、結構いらっしゃるのではないのかなぁと考えています。
TypeName関数で変数の型を確認する
ちなみにTypeName関数を使う場合、以下のようなマクロです。
Dim a, b, c, d
a = 1
b = 1.1
c = "1"
Set d = Cells(1, 1)
Debug.Print TypeName(a)
Debug.Print TypeName(b)
Debug.Print TypeName(c)
Debug.Print TypeName(d)
上記のマクロを実行した場合は、イミディエイトウィンドウに下図のような出力が行われます。
マクロを実行した後で、じっくり確認をしたいのなら、TypeName関数を使ってDebug.Printするしかありませんが、ステップ実行中に確認するだけでいいのなら、コードを書く必要のないローカルウィンドウで十分なはずです。
- Newer:常用対数表の作り方
- Older:列範囲を指定・取得する-Range・EntireColumn・Columns
Home » VBE(Visual Basic Editor) » 変数の型を調べるには?-ローカルウィンドウ・TypeName関数