- Home ›
- Excel VBA入門 ›
- 基本文法
VBAのデータ型と変数のデータ型の指定
VBA であつかう値にはデータ型が定義されています。例えば整数は Integer 型で文字列は String 型となっています。 VBA で変数を宣言する場合、その変数でどんなデータ型の値を格納するのかを合わせて指定します。ここでは Excel VBA で使用できるデータ型と変数でデータ型を指定して宣言する方法について解説します。
(Last modified: )
VBAで利用できるデータ型の種類
VBA で利用できるデータ型には次のようなものがあります。
データ型 | 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 | オブジェクト参照するデータ型 |
バリアント型 | Variant | あらゆる種類の値を保存できる型 |
ユーザー定義型 | -- | ユーザー定義の型 |
データ型には文字列、数値、日付、ブール、オブジェクト、の 5 種類が用意されています。また数値は扱う数値の範囲や整数かそうでないかによっていくつかの種類が用意されています。
バリアント型はすべての値やオブジェクトを代入することができます。またユーザー定義型は少し特別な型なので、別のページで詳しく解説します。
データ型毎の値の記述方法
データ型毎の値(リテラルともいいます)を記述する場合に、どのように記述するのかを確認します。
数値
数値については直接数値を記述します。例えば 10
や 3.14
などです。
Sub テスト() Dim x As Integer Dim y As Double x = 10 y = 1234.567 End Sub
なお Double 型の変数に 1.0 のような数値を入力すると 1# のようにシャープ( #
)が付いた値に変換されます。これは Double 型の値であることを表しています。
文字列
文字列についてはダブルクオーテーション(")で囲んで値を記述します。例えば "Hello"
などです。
Sub テスト() Dim pref As String pref = "東京都" End Sub
日付と時刻
日付と時刻については値をダブルクオーテーション(")で囲んで文字列として記述するか、またはシャープ(#)で囲んで値を記述します。例えば "2022/9/24"
や #3/11/1992#
などです。
Dim d1 As Date Dim d2 As Date Dim t As Date d1 = "2021年3月14日" d2 = #3/14/2021# t = "11:26:39 AM"
シャープ(#)で囲んで指定する場合は #月/日/年#
の形式で入力してください。 #年/月/日#
でも入力できますが、コードウィンドウで入力すると自動的に #月/日/年#
の形式に変換されます。
ブール型
ブール型は「True」または「False」の値を取ります。
Dim b As Boolean b = True
変数を宣言するときにデータ型を指定する
VBA では変数を宣言するときに、データ型を指定して宣言することができます。
Dim 変数名 As データ型
変数名のあとに As
を記述し、そのあとにデータ型を指定してください。データ型には例えば Integer
や String
を指定します。
変数を宣言するときにデータ型を指定した場合、変数に指定したデータ型以外の値を変数に代入するとエラーとなります。
次の例を見てください。
Sub テスト() Dim old As Integer Dim name As String End Sub
変数 old
のデータ型は Integer
型なので整数の値を代入できます。また変数 name
のデー型は String
型なので文字列の値を代入できます。
Sub テスト() Dim old As Integer Dim name As String old = 24 name = "山田太郎" End Sub
もし変数 old
に整数ではない文字列の値を代入すると、プログラムの実行時に「型が一致しません」というエラーとなります。
Sub テスト()
Dim old As Integer
Dim name As String
old = "東京都"
name = "山田太郎"
End Sub
このように変数にデータ型を指定することで、予期しない使われ方を防ぐことができます。
変数の宣言でデータ型を省略した場合
なお VBA では変数を宣言するときにデータ型を省略することもできます。
Dim 変数名
データ型を省略した場合は、データ型として Variant
を指定しものとして扱われます。つまり次のように変数を宣言したものと同じです。
Dim 変数名 As Variant
Variant
型はあらゆる値やオブジェクトを代入することができます。そのため、データ型を省略して宣言した変数にはどんな値でも代入することができます。
-- --
Excel VBA におけるデータ型について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。