データ型の概要
データ型は、保持できるデータの種類を決定する変数の特性です。 データ型には、次の表で示されているもの、ユーザー定義型、およびオブジェクトに固有の型が含まれます。
組み込みのデータ型を設定する
次の表では、サポートされる データ型および記憶域のサイズと範囲を示します。
データ型 | 記憶領域サイズ | 範囲 |
---|---|---|
Boolean | 2 バイト | True または False |
Byte | 1 バイト | 0 ~ 255 |
Collection | 不明 | 不明 |
Currency (スケーリングされた整数) | 8 バイト | -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807 |
Date | 8 バイト | -657,434 (100 年 1 月 1 日) から 2,958,465 件 (9999 年 12 月 31 日) |
Decimal | 14 バイト | +/-79,228,162,514,264,337,593,543,950,335 (小数点なし) +/-7.9228162514264337593543950335 (小数点以下 28 桁) +/-0.0000000000000000000000000001 (0 ではない最小の値) |
Dictionary | 不明 | 不明 |
Double (倍精度浮動小数点数) | 8 バイト | -1.79769313486231E308 から -4.94065645841247E-324 (負の値) 4.94065645841247E-324 から 1.79769313486232E308 (正の値) |
Integer | 2 バイト | -32,768 〜 32,767 |
Long (Long 整数) | 4 バイト | -2,147, 483,648 〜 2,147, 483,647 |
LongLong (LongLong 整数) | 8 バイト | -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 64 ビット プラットフォームでのみ有効。 |
LongPtr (32 ビット システムでは Long 整数、64 ビット システムでは LongLong 整数) | 32 ビット システムでは 4 バイト 64 ビット システムでは 8 バイト |
-2,147,483,648 から 2,147,483,647 (32 ビット システム) -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 (64 ビット システム) |
Object | 4 バイト | 任意の Object 参照 |
Single (単精度浮動小数点数) | 4 バイト | -3.402823E38 から -1.401298E-45 (負の値) 1.401298E-45 から 3.402823E38 (正の値) |
String (可変長) | 10 バイト + 文字列の長さ | 0 〜 約 20 億 |
文字列型 (String) (固定長) | 文字列の長さ | 1 〜 約 65,400 |
Variant (数値) | 16 バイト | 最大で Double の範囲までの任意の数値 |
バリアント型 (Variant) (文字) | 22 バイト + 文字列長 (64 ビット システムでは 24 バイト) | 可変長 文字列型 と同じ範囲 |
ユーザー定義 (Type を使用) | 要素に必要な数 | 各要素の範囲は、そのデータ型の範囲と同じです。 |
配列を含む Variant には、配列だけの場合より 12 バイト余計に必要です。
注:
すべてのデータ型の配列には、20 バイトと、配列次元ごとに 4 バイトと、データ自体が占めるバイト数が必要です。 データが占めるメモリは、データ要素の数と各要素のサイズを乗算して求めることができます。
たとえば、各 2 バイトの 4 個の Integer データ要素で構成される 1 次元配列のデータは、8 バイトを使用します。 データに必要な 8 バイトとオーバーヘッドの 24 バイトを加えて、この配列に必要な総メモリは 32 バイトとなります。 64 ビット プラットフォームでは、SAFEARRAY は 24 ビット (それに加えてDim ステートメントごとに 4 バイト) 使用します。 pvData メンバーは 8 バイト ポインターであり、8 バイト境界に揃える必要があります。
注:
LongPtr は、32 ビット環境では Long に変換され、64 ビット環境では LongLong に変換されるので、実際のデータ型ではありません。 LongPtr を使用して Declare ステートメントのポインター値とハンドル値を表す必要があり、このようにすると 32 ビットと 64 ビットの両方の環境で実行できる移植性の高いコードを作成できます。
注:
文字列データの型の間の変換には、StrConv 関数を使用します。
識別子の種類の文字
宣言で変数または定数のデータ型を指定するために使用できる 識別子型文字 のセットが提供されます。 次の表は、使用例を含む使用可能な識別子の種類の文字を示しています。
識別子の型文字 | データ型 | 例 |
---|---|---|
% |
整数 | Dim L% |
& |
Long | Dim M& |
^ |
LongLong | Dim N^ |
@ |
通貨 | Const W@ = 37.5 |
! |
1 行 | Dim Q! |
# |
倍精度浮動小数点数 | Dim X# |
$ |
文字列 | Dim V$ = "Secret" |
、、、 Double
Variant
Decimal
Object
Date
LongPtr
データ型、または配列、コレクション、ディクショナリ、構造体、ユーザー定義型などの複合データ型には、識別子型の文字は存在Boolean
Byte
しません。
場合によっては、 の代わりにLeft
、Visual Basic 関数に文字を追加$
して、 Left$
型String
の戻り値を取得できます。
いずれの場合も、識別子の種類の文字は識別子名の直後に続く必要があります。
データ型を変換する
CBool、CByte、CCur、CDate、CDbl、CDec、CInt、CLng、CLngLng、CLngPtr、CSng、CStr、CVar の各データ型に式を強制する方法の例については、「型変換関数」を参照してください。
次の各関数については、それぞれのページをご覧ください。CVErr、Fix、Int。
注:
CLngLng は、64 ビット プラットフォームでのみ有効です。
データ型を確認する
データ型を確認するには、以下の関数をご覧ください。
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。