技術情報
データ型
Excel VBAで扱えるデータ型には、以下のようなものがあります。
プログラム中では、「Dim "変数名" As "型"」のように変数を宣言して用います。
名称 バイト数 説明
ブール型 Boolean 2 True」(真)または「False」(偽)を表現するデータ型です。
数値をブール型に変換すると、
0 -> False"0以外" -> True
になります。
ブール型の値を数値に変換すると、
True -> -1False -> 0
になります。
バイト型 Byte 1 バイナリデータを格納するためのデータ型です。
通常はバイト型変数の配列にデータを1バイトずつ格納して処理します。
整数表記では0~255の範囲の値をとります。
通貨型 Currency 8 金額の計算に用いるためのデータ型です。
15桁の整数部分と4桁の小数部分から構成されます。
値の範囲は
-922,337,203,685,477.5808  ~
922,337,203,685,477.5807
です。
日付型 Date 8 日時を表すためのデータ型です。
日付は西暦100年1月1日西暦9999年12月31日
時間は00:00:0023:59:59
の範囲を表すことができます。
値は浮動小数点で保持され、整数部は日付、小数部が時間を表します。
整数部の日付は1899年12月30日からの日数を表します。つまり、整数部が0の時、日付は1899年12月30日となります。
整数部の日付が負の整数は1899年12月29日以前の日数を表します。
小数部の時間は24時間を1とした比で表します。
つまり、0が午前0時0.5が午後12時となります。
10進型 - 12 10の累乗により値が表現されます。
10の累乗の指数部は-2828の範囲をとります。
とりうる値は0以外に
負の範囲は、
-7.9228162514264337593543950335×1028
(-79,228,162,514,264,337,593,543,950,335)
  ~
-1.0×10-28
(-0.0000000000000000000000000001)
正の範囲は、
1.0×10-28
(0.0000000000000000000000000001)
  ~
7.9228162514264337593543950335×1028
(79,228,162,514,264,337,593,543,950,335)
です。
しかし、このデータ型はVBAでは、変数として宣言することはできません。
そのため、Variant型として宣言した変数に、CDec関数により10進型に変換して取り扱うようにします。

浮動小数点型による計算では非常に小さい誤差が出る場合があるため、小数を正確に扱いたい場合には、このデータ型を用います。
(例)
' 倍精度浮動小数点型の変数を宣言
Dim LngA As Double
' 値を代入
LngA = 100.456
' 「0.456000000000003」と表示されます。
' (小さい誤差が含まれてしまいます)
VBA.MsgBox (LngA - 100)
' 「0.456」と表示されます。
' (小さい誤差が含まれません)
VBA.MsgBox (VBA.CDec(LngA) - 100)
倍精度
浮動小数点型
Double 8 自然対数の底eの累乗により値が表現されます。
とりうる値は0以外に
負の範囲は、
-1.79769313486231×e308  ~
-4.94065645841247×e-324
正の範囲は、
4.94065645841247×e-324  ~
1.79769313486231×e308
です。

演算により非常に小さい誤差が発生しますので、精度の高い小数を扱うことはできません。
精度の高い小数を扱いたい場合には、10進型や整数型で演算してから小数に戻すなどの工夫が必要になります。
単精度
浮動小数点型
Single 4 自然対数の底eの累乗により値が表現されます。
とりうる値は0以外に
負の範囲は、
-3.402823×e38  ~
-1.401298×e-45
正の範囲は、
1.401298×e-45  ~
3.402823×e38
です。

演算により非常に小さい誤差が発生しますので、精度の高い小数を扱うことはできません。
精度の高い小数を扱いたい場合には、10進型や整数型で演算してから小数に戻すなどの工夫が必要になります。
整数型 Integer 2 整数を扱うデータ型です。
値の範囲は、-32,768  ~  32,767です。
長整数型 Long 4 整数を扱うデータ型です。
値の範囲は、-2,147,483,648  ~  2,147,483,647です。
文字列型 String 31(最大) 文字列を扱うデータ型です。
およそ2GB(2の31乗)のデータを格納することができます。
可変長文字列と固定長文字列があります。
文字列の長さを指定せずに変数の宣言をすると可変長文字列になり、文字列の長さに応じて自動的にメモリ領域が確保されます。
「Dim StrData As String * 20」のようにすると、20バイト分の固定長文字列変数がメモリ上に確保されます。
オブジェクト型 Object 4 オブジェクトを参照するためのデータ型です。
オブジェクトが保持されているメモリのアドレスを格納します。
このデータ型の変数にオブジェクトを代入するには、Setステートメントを使って代入をします。
バリアント型 Variant 16(最大) 固定長文字列データとユーザ定義型データ以外のデータ型を格納することができるデータ型です。
バリアント型の変数に数値データを格納した場合、格納したデータの元のデータ型でバリアント型変数に格納されます。
但し、演算によって、元のデータ型の値の範囲を超えた場合には、より大きな値の範囲を扱えるデータ型に自動的に変換されます。
数値データのとりうる値は0以外に
負の範囲は、
-1.797693134862315×e308  ~
-4.94066×e-324
正の範囲は、
4.94066×e-324  ~
1.797693134862315×e308
です。
ユーザ定義型 - - Typeステートメントを使って、様々なデータ型を組み合わせた独自のデータ型です。
いわゆる構造体に相当するものです。