Chapter2-4 データ型の宣言

VBEのオプション([ツール]メニュー)に「変数の宣言を強制する」という項目があります。これがOFFの場合、Dimステートメントを使ってあらかじめ変数を宣言しておかなくても、どこでも新たな変数を使い始めることができます。一見便利そうですが、ちょっとした変数名の記述間違いで、思いもよらぬ結果を招くことがあります。

たとえば次のプログラムでは、「Data2」とすべきところ「Date2」となっているため、実際には「100 + 0」という計算が行なわれてしまいます。
Data1 = 100
Data2 = 200
Debug.Print Data1 + Date2



そこで、このオプションは必ずONにするようにします。それによって、モジュールを新規作成すると、Declarationsセクションに「Option Explicit」というステートメントが自動的に挿入されます。もし宣言されていない変数があれば、コンパイルエラーとして警告を発してくれますので、バグを未然に防ぐことができます。


■データ型とは
変数や定数を宣言する際には、その変数で扱うデータの内容を予測・確認し、必ず「As」キーワードを使ってそれに見合った「データ型」を指定するようにします。

「データ型」とは、その変数や定数のデータが持つ属性のことです。数値は計算できますが文字は計算できません。また、同じ数値であっても、整数と小数とがあります。また何億という大きな数値もあれば小さな数値もあります。VBAでは、これらを整数型や浮動小数点型、文字列型といったように、別のデータ型として扱うようにしています。

データ型は指定しなくてもエラーにはなりませんが、指定することによって、その属性の範囲外のデータは格納できないようになりますので、うっかりしたミスによるバグを防ぐことができます。

また、データ型を宣言しない場合には自動的に「バリアント型」として扱われます。このデータ型は数値でも文字列でも扱う便利さはありますが、処理に時間がかかるなどのデメリットがあります。パフォーマンスの面からも、データ型は必ず指定するようにします。


データ型は次のような構文で宣言します。
Dim 変数名 As データ型

Const 定数名 As データ型 = 定数値


データ型の宣言例:
Dim intX As Integer
Dim strData As String
Const PAI As Single = 3.14

  • コードウィンドウでは、”AS”を入力すると、自動メンバ表示機能によって、使用可能なデータ型が一覧表示されます。
  • 変数名の先頭に、そのデータ型の省略型の文字を付けることによって、変数の属性の認識が容易になります。Integerなら”int“、Longなら”lng”、Stringなら”str”といった文字を付けます。

VBAで使えるデータ型には、主に次のようなものがあります。テーブルからデータを読み出して変数に代入するような場合は、値の範囲に特に注意して、テーブル上のデータ型と一致するようにします。
データ型 宣言名 値の範囲
バイト型 Byte 0〜255
ブール型 Boolean 真(True)または偽(False)
整数型 Integer -32,768〜32,767
長整数型 Long -2,147,483,648〜2,147,483,647
単精度浮動小数点数型 Single -3.402823E38〜3.402823E38
倍精度浮動小数点数型 Double -1.79769313486231E308〜1.79769313486232E308
通貨型 Currency -922,337,203,685,477.5808〜922,337,203,685,477.5807の金額
日付型 Date 100年1月1日〜9999年12月31日
文字列(テキスト)型 String 長さ0〜2GBまでの任意の文字
バリアント型 Variant
(省略時)
数値も日付も文字列もNULL値も扱い可能
| Index | Prev | Next |

 

Copyright © T'sWare All rights reserved