変数とは
倉庫の乱雑におかれた商品。整理するには、収納する箱を用意し、そこへ商品別に入れてラベルを貼り棚に収めます。VBAでこの「箱」の役割をするのが変数です。変数には文字列、数値などのデータを一時的に入れ、名前を書いたラベルを貼ります。このラベルを変数名といいます。
変数の宣言を強制する意味
VBAの初期設定では変数を宣言しなくても使えます。この状態では入力ミスをしてもマクロがエラーにならず、マクロ的には正常に終了してしまいます。つまり、宣言していない変数に代入した数値などが誤って認識され、正しい計算結果を得ることができません。
それを回避するには「変数の宣言を強制する」ことです。
VBAの初期状態では「変数の宣言を強制する」がオフになっているので「Option Explicit」が入力されていません。
「変数の宣言を強制する」をオンにする
では「変数の宣言を強制する」をオンにします。
VBEの[ツール]〜[オプション]をクリック。
[編集]タブの[変数の宣言を強制する]チェックボックスをオンにしたら[OK]をクリック。
これでモジュールの先頭にOption Explicitが自動的に入力されます。
これで宣言していない変数を使用していると、実行時に「コンパイルエラー 変数が定義されていません」とアラートがでて、コードの修正がもとめられます。
変数の宣言方法
変数を宣言するときは
Dim 変数名 As 変数の型名 → (例)Dim buf As String
1列にまとめて宣言することもできます
Dim 変数名 As 変数の型名, 変数名 As 変数の型名 → (例)Dim a As String, b As String
というように書きます。宣言の仕方や場所によって変数の適用範囲が限定されます。
変数はプロシージャごとに違うため、各プロシージャ内でしか使えません。
変数「メニュー」の適用範囲(スコープ)がプロシージャ内であることがわかります。
このように各プロシージャ内で使用する変数は、たとえ同名でも別なものです。一方「モジュール変数」といって複数のプロシージャで共有できる変数もあります。変数の適用範囲はモジュール内で有効になります。
変数宣言のDimとデータ型
変数はデータを収納する「箱」といわれます。箱はどんな種類のデータを入れるかによって使い分けます。最初に何を収納する箱なのかを決めておくことにより効率良くデータを管理できます。これを行うのが「変数の型宣言」です。自作ソフトFactorXで使った主な変数の型を挙げておきます。
データ型 | 名 称 | 中に入る値 |
Byte | バイト型 | 0〜255の範囲の小さな正の整数値 |
Integer | 整数型 | -32,768〜32,767 負の数も含む整数 |
Long | 長整数型 | -2,147,483,648〜2,147,483,647 Integerには入らないような大きな数を入れる |
Single | 単精度浮動小数点数値 | -3.402823E38 ~ -1.401298E-45(負の値) 1.401298E-45 ~ 3.402823E38(正の値) |
Double | 倍精度浮動小数点数型 | -1.79769313486232E308 ~ -4.94065645841247E-324(負の値) 4.94065645841247E-324 ~ 1.79769313486232E308(正の値) |
String | 文字列型 | 最大約20億文字まで |
Date | 日付型 | 西暦100 年1月1日~西暦9999年12月31日までの日付と時刻 |
Boolean | ブール型 | 真 (True) または偽 (False)を入れる |
Object | オブジェクト型 | オブジェクトへの参照 |
Variant | バリアント型 | あらゆる種類の値 数値はDoubleで格納できる値。文字列はStringで格納できる文字列 |
コメント