- Home ›
- Excel VBA入門 ›
- 基本文法 ›
- HERE
データ型と変数の型の指定
VBAでは値を扱う場合にデータ型と言うものがあります。例えば何か計算をする場合は数値ですが、何かを表示する場合は文字列となります。同じ「1」という値であっても数値としての「1」の場合もありますし、文字の「1」の場合もあるわけです。
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 | オブジェクト参照するデータ型 |
バリアント型 | String | あらゆる種類の値を保存できる型 |
ユーザー定義型 | String | ユーザー定義の型 |
データ型には色々な種類がありますが、文字列、数値、日付、ブール、オブジェクト、の5種類あると考えておいて下さい。数値には整数の他に浮動小数点型というのがありますが、例えば「123.45」のように小数点が含まれる数値を扱うものと考えて下さい。通貨型は極めて大きい数値を誤差なく計算するのに使います。
変数に型を指定する
変数には型を指定することができます。前のページで見た次の記述方法の場合は型を指定していませんでした。
Dim 変数名
型を指定していない場合は、どのような型の値でも格納する事が出来ます。この場合、値が格納された時にその格納された値の型が変数の型となります。
このように変数に型を指定していない場合、予定と違った値を格納してしまうようなミスが発生しやすくなります。例えば数値を格納する予定の変数を宣言したのに、間違えて文字を格納してしまっても、値を格納した時点ではエラーとならないためです。その為、変数を宣言する時はどのような型の値を格納するための変数なのかを、変数を宣言する時に合わせて型を指定するようにします。
書式は次の通りです。
Dim 変数名 as データ型
変数名の後に「as」を付け、その後にデータ型を指定します。例えば次のようになります。
Dim 変数12 as String Dim var as Integer Dim old as Integer, name as Object
変数に指定した型と異なるデータ型の値を格納しようとするとエラーとなります。
例えばInteger型を指定した変数「x」に文字列の"こんにちは"を格納したとします。
Sub プロシージャ名() Dim x As Integer x = "こんにちは" End Sub
上記のマクロを実行しようとすると次のようなエラーが表示されます。
このように変数にデータ型を指定することで、予期しない使われ方を防止する事が出来ます。出来る限り変数には型を指定するようにしましょう。
( Written by Tatsuo Ikura )