
VBA超入門シリーズ:その5 ~変数の型~
変数の続きです。
詳しく見ていきましょう。
データ型
変数にはデータ型という仕組みがあります。
前回は数字の「100」を格納しましたが、数値の「100」の場合があれば文字列の「100」の場合もあります。
じゃぁどうすればいいのか。。。ってことでデータ型を使って指定していきます。
VBAで使われるデータ型
データ型 | VBAの表記 | データ型の対象または数値範囲 |
---|---|---|
文字列型 | String | 任意の長さの文字列 |
ブール型 | Boolean | True または False |
バイト型 | Byte | 0 ~ 255の整数 |
整数型 | Integer | -32,768 ~ 32,767の整数 |
長整数型 | Long | -2,147,483,648 ~ 2,147,483,647の整数 |
通貨型 | Currency | -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807の固定小数点数 |
単精度浮動小数点数型 | Single | -3.402823E38 ~ -1.401298E-45、1.401298E-45 ~ 3.402823E38 |
倍精度浮動小数点数型 | Double | -1.79769313486231E308 ~ -4.94065645841247E-324、4.94065645841247E-324 ~ 1.79769313486232E308 |
日付型 | Date | 西暦100年1月1日 ~ 西暦9999年12月31日 (日付と時刻) |
オブジェクト型 | Object | オブジェクト |
バリアント型 | Variant | すべてのデータ |
ユーザー定義型 | – | ユーザー定義の型 |
いや多いぞ??
全部は覚えていられないのでよく出てくるものだけにします。
長整数型(Long)と文字列型(String)がよく使われるようです。
長整数型(Long)と似たもので整数型(Integer)がありますが、長整数型に比べ -32,767 ~ 32,767 と範囲が狭いので大は小を兼ねるということで、長整数型で宣言すればよいそうです。
- 整数を入れる変数 → 整数型(Integer) or 長整数型(Long)
- 文字列を入れる変数 → 文字列型(String)
とりあえず、ほとんどのマクロがこれだけで十分(らしい)
変数に型を指定
前回は変数を宣言しただけで型の指定をしていません。
Dim 変数名
型を指定していない場合は、どのような型の値でも格納する事が出来ます。
この場合、値が格納された時にその格納された値の型が変数の型となります。
(え、じゃぁ型を指定する必要なくね…?)
とはいきませんでした。
変数に型を指定していない場合、予定と違った値を格納してしまうミスが発生しやすくなります。
用途に合わせて型を指定しましょう。
指定方法は以下の通りです。
Dim 変数名 as データ型
変数名の後に「as」を付け、その後にデータ型を指定します。
例えば次のようになります。
Dim name as String '←nameを文字列型で指定
Dim old as Integer '←oldを整数型で指定
Dim X as Long, Y as String '←Xを長整数、Yを文字列
変数に指定した型と異なるデータ型の値を格納しようとするとエラーとなります。
やってみましょう
整数型(Integer)で指定した変数「X」に文字列「こんにちは」を格納してみます。
Sub テスト()
Dim X as Integer
X = “こんにちは”
End Sub
整数型の格納可能範囲は-32,768から32,767の整数なので文字は格納できないのでエラーになります。
ちゃんと格納できるように修正します。
ついでに「A1」に記述してもらいましょう。
Sub テスト()
Dim X As String
X = "こんにちは"
Range("A1").Value = X
End Sub
実行
変数に型を指定することによって、このように変数が予期せぬ使い方をされることを防ぎます。
面倒ですが指定しましょう。。。