サイトについて      連絡先   検索

VBA データ型

はじめに

Excel VBA のデータ型を紹介します。

数値の Integer や文字列の String や日付の Date などさまざまな型があります。

変数には型にあった値を代入する必要があります。そうでない値は自動で変換されるかエラーになります。

データ型

VBA で使用できる型には主に次のものがあります。

型名 データ型 値の例や範囲
String文字列型"文字列"
Booleanブール型True または False
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.79769313486231E308 ~ -4.94065645841247E-324
正:4.94065645841247E-324 ~ 1.79769313486232E308
Currency通貨型-922,337,203,685,477.5808 ~ 922,337,203,685,477.5807
Date日付型西暦100年1月1日 ~ 西暦9999年12月31日 の日付と時刻
Objectオブジェクト型オブジェクト参照するデータ型 (Worksheet やクラスなど)
Variantバリアント型なんでも (多様は禁物)
Typeユーザー定義型Type で定義した型、いわゆる構造体

この他に変数として宣言できませんが VBA で最大の桁数を持つ Decimal 型が存在します。Variant 型に CDec 関数を使用したときだけ使用できる型です。

型名 データ型 値の例や範囲
Decimal10 進型少数なしの最大値:79,228,162,514,264,337,593,543,950,335
少数ありの最大値:7.9228162514264337593543950335

Dim d As Variant
d = CDec(7.92281625142642E+28) ' Decimal 型になる

数値型について

数値型には Byte, Integer, Long ・・・と数多くの型が用意されています。

まずは Integer の選択を考えます。Integer が数値型の一番の基本型だからです。

Integer の範囲は -32,768 ~ 32,767 です。この範囲より大きな数値を扱うときに Long や Currency などその数値が収まる型を選択します。

少数点を使用するなら Double を選択します。

データ型の変換

型に合わない値を代入するとエラーになります。


Dim 数値 As Integer
数値 = 10     
数値 = "文字" ' エラー

VBA には、その型に代入できる値を持った別の型を自動で変換する機能があります。


Dim 変数Long As Long
Dim 変数Int As Integer
Dim 変数Byte As Byte

変数Long = 256      ' Long に 256 を代入
変数Int = 変数Long  ' Integer に変換される
変数Byte = 変数Long ' Byte の範囲を超えているためエラー

同じように文字列を数値や日付に代入できます。


Dim 変数String As String
Dim 変数Int As Integer  
Dim 変数Byte As Byte

変数String = "256"
変数Int = 変数String  ' Integer に変換される
変数Byte = 変数String ' Byte の範囲を超えているためエラー

Dim 変数String As String
Dim 変数Date As Date

変数String = "2000/12/31"
変数Date = 変数String ' Date 型に変換される
各データ型の値の指定の仕方や、もっと詳しい情報については下記の関連ページをご覧ください。

関連ページ