データ型とは、プログラムで扱うデータの種類のことを指します。
変数に対してデータ型を宣言することで、格納できるデータの種類が決まります。
制限させるといった方が良いかもしれません。
データ型を変数に指定しない場合、VBAの場合は、バリアント型(Variant型)が割当てられます。
宣言する際にデータ型を記述するのは、下記のようなコードになります。
Dim 変数名 As データ型
データ型によって、扱うデータの種類や扱える値の範囲が違います。
データ型 | 名称 | 範囲 |
---|---|---|
Byte | バイト型 | 0 ~ 255 |
Integer | 整数型 | -32,768 ~ 32,767 |
Long | 長整数型 | -2,147,483,648 ~ 2,147,483,647 |
Single | 単精度浮動小数点型 | -3.402823E38 ~ -1.401298E-45(負の値) |
1.401298E-45 ~ 3.402823E38(正の値) | ||
Double | 倍精度浮動小数点型 | -1.79769313486232E308 ~ -4.94065645841247E-324(負の値) |
4.94065645841247E-324~1.79769313486232E308(正の値) | ||
Currency | 通貨型 | -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807 |
Char | 文字列型 | 最大約20億文字まで |
Date | 日付型 | 西暦100 年1月1日~西暦9999年12月31日までの日付と時刻 |
Object | オブジェクト型 | オブジェクトを参照するデータ型 |
Variant | バリアント型 | 可変長の文字列型の範囲と同じ。 |
Boolean | ブール型 | 真 (True) または偽 (False) |
下記の例文では、変数iをInteger型として宣言し、10の値を代入して、さらにその変数に10を乗算した値を再代入して、その結果をメッセージボックス表示させています。
Sub Sample()
Dim i As Integer
i = 10
i = i * 10
Msgbox i
End Sub
下記の例文では、変数iをInteger型として宣言し、値5555555を代入しようとしています。しかし、Integer型が代入できる値の範囲は、-32768~32767のため、オーバーフローエラーが発生します。
Sub Sample()
Dim i As Integer
i = 5555555 '→オーバフローでエラーとなる
i = i * 10
MsgBox i
End Sub