HOME > エクセルVBA > 変数

変数とは

 変数とはプログラム実行中に変化していく値を格納しておく容器と考えてください。変数には数字、文字列等なんでも格納する事が出来ます。VBAに限らずどのプログラムでも必要になってくる概念なのでじっくり理解していきましょう。

たとえば…

A=150+50

と、記述すると変数Aには200の数字を格納する事になります。数学的に「=」は、左辺と右辺が同じものをあらわしますが、VBAの世界で「=」といえば右辺の数字・文字列などを左辺に代入する事になります。

変数の特徴

 変数は使用する前に宣言しましょう。宣言せずに使用することも可能ですが、後々プログラムを見た時にわかりづらくなります。自分のプログラムでも数ヶ月たてば何を書いているかわかりません。かならず宣言するようにしましょう。

 変数は何でも代入できます。数値・文字列はもちろん、True/Falseなどの理論値、セル、ワークシートやオブジェクトも格納する事ができます。何を入れるかによって型を指定する事も出来ますが、はじめのうちは何でも入れれる様にすることも出来ます。

 変数の名称は自由につけることができます。しかし、一応のルールがあるので確認しておきましょう。

ヘルプより

 変数名には、文字(英数字、漢字、ひらがな、カタカナ)とアンダースコア ( _ )を使うことができます。スペース(空白)や記号は使えません。変数名の先頭の文字は、英字、漢字、ひらがな、カタカナのいずれかでなければなりません。同一適用範囲(スコープ)内で同じ変数名を複数使うことはできません。また変数名の長さは、半角で255 文字以内でなければなりません。

変数のデータ型

 下の表は変数の型の一覧表です。初めは「Variant」だけでも問題ないですが、慣れてきたら変数に代入したいデータの型にあわせて変数の宣言をしましょう。

データ型 データ型 サイズ 範囲
バイト型 Byte 1 0〜255
ブール型 Bool 2 真(True)偽(False)
整数型 Integer 2 -32,768〜32,767
長整数型 Long 4 -2,147,483,648〜2,147.483,647
単精度浮動小数点数型 Single 4 -3.402823E38〜-1.401298E-45(負の数)
1.401298E-45〜3.402823E38(正の数)
倍精度浮動小数点数型 Double 8 -1.7976931348623E308〜-4.94065645841247E-324(負の数)
4.94065645841247E-324〜1.79769313486232E308(正の数)
通貨型 Currency 8 -922,337,203,685,477.5808〜922,337,203,685,477.5807
日付型 Date 8 西暦100年1月1日〜西暦9999年12月31日
オブジェクト型 Object 4 オブジェクトを参照するデータ型
文字列型 String 10+文字列の長さ 0〜2GB
バリアント型 Variant 16 すべてのデータを扱えるデータ型で0〜2GB

変数の宣言

 変数を宣言するには、Dimステートメント、Staticステートメント、Privateステートメントを使用します。変数名の後ろに変数の型を宣言しなかったらデータはVariant型になります。

例 Dim my_a As Integer

同じ型の変数を複数宣言したいなら「,」で区切って明示することも出来ます。

例 Dim my_a As Integer, my_b As Integer

変数の宣言場所と有効期間

 変数の宣言場所、どのステートメントで宣言するかによって有効期間や有効範囲が変ってきます。

プロシージャ内で変数を使う場合

 プロシージャ内でDimまたはStaticステートメントで宣言しましょう。Dimステートメントで宣言した場合はそのプロシージャ内が有効範囲です。他のプロシージャからは参照できません。プロシージャが終了すると値は破棄されます。

 Staticステートメントで宣言した場合はそのプロシージャ内が有効範囲です。他のプロシージャからは参照できません。プロシージャが終了してもプログラム実行中は値が保持されます。

モジュール内で変数を使う場合

 モジュールの先頭部分(宣言セクション)でDimステートメント、Privateステートメントで宣言した場合、変数はそのモジュール全体で使用できます。代入した値はプログラム実行中は値が保持されます。

パブリック変数

 標準モジュールの先頭部分(宣言セクション)でPublicステートメントを使って宣言した変数はすべてのモジュールから参照することができます。また、プログラム実行中は値が保持されます。

 クラスモジュールの先頭部分(宣言セクション)でPublicステートメントを使って宣言した変数は、フォームが開いている間は他のモジュールから参照することが出来ます。

変数

↑変数をモジュールの宣言セクションで宣言しているのでモジュール全体で使用することが出来ます。オプションで「変数の宣言を強要する。」にチェックを入れると、「Option Explicit」が記入され、変数を宣言しなければなりません。変数を宣言していないと後々問題になる事があると思うので変数は必ず宣言しておきましょう。

条件分岐「Ifステートメント」「Select Caseステートメント」  エクセル職人  オブジェクトとプロパティ、メソッド

▲TOPへ移動