データ型の概要

データ型は、保持できるデータの種類を決定する変数の特性です。 データ型には、次の表で示されているもの、ユーザー定義型、およびオブジェクトに固有の型が含まれます。

組み込みのデータ型を設定する

次の表では、サポートされる データ型および記憶域のサイズと範囲を示します。

データ型 記憶領域サイズ 範囲
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"

、、、 DoubleVariantDecimalObjectDateLongPtrデータ型、または配列、コレクション、ディクショナリ、構造体、ユーザー定義型などの複合データ型には、識別子型の文字は存在BooleanByteしません。

場合によっては、 の代わりにLeft、Visual Basic 関数に文字を追加$して、 Left$Stringの戻り値を取得できます。

いずれの場合も、識別子の種類の文字は識別子名の直後に続く必要があります。

データ型を変換する

CBool、CByteCCur、CDateCDblCDecCIntCLng、CLngLngCLngPtrCSngCStrCVar の各データ型に式を強制する方法の例については、「型変換関数」を参照してください。

次の各関数については、それぞれのページをご覧ください。CVErrFixInt

注:

CLngLng は、64 ビット プラットフォームでのみ有効です。

データ型を確認する

データ型を確認するには、以下の関数をご覧ください。

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。