ITサポーターTsuchida

VBA Basic6

第6章 変数について

VBAに限らず、プログラミングでは変数を非常に使います。プログラマから見ると変数を使うことは当たり前なのですが、慣れない人にとってはこの変数を理解することがプログラミングの一つのハードルになります。

変数とは、数値や文字列などの値を一時的に保管する場所で、状況に応じて値が変わるものです。 変数は目的に応じて変数の性質が変わります。例えば、数値を計算する変数は 数値であること、文字を加工する変数は文字列になります。変数を宣言するときにデータ型を指定します。

変数で主に使うデータ型は下の表のとおりです。

データ型 呼び名 特徴
Long 長整数型 小数点を持たない数値データで、整数の計算に使用する。計算速度が早いため、何度も計算に使われる変数に使用される。
Currency 通貨型 小数点を持ち、Longに比べて大きな数値も扱える。事務計算の変数で使用される。
String 文字列型 文字列を扱う変数に使用される。
Date 日付型 日付や時刻を扱う変数に使用される。
Boolean ブーリアン型 真( true)と偽( false)という値を扱う変数に使用される。
Variant バリアント型 編集されるデータにあわせてくれるので、すべての変数に使用が可能である。※1

※1 データ型省略時はVariantになります。最近ではVariant型がよく使われ、Variant型で不都合が生じることがほとんどありませんので、データ型の省略を気にすることはありません。(昔からプログラマはデータ型を指定する癖があります。ちなみに私もその癖がぬけません。)

重要なのはデータ型を気にするのではなく、変数を宣言することです。

Dim Total As Long←Totalという名の変数を長整数型のデータ型で宣言

 

変数を使うときの例

セルB1~セルB9の平均をセルB10に表示する VBAを作成し実行します。

この場合はセルB1~セルB3の合計を求める変数を宣言します VBAでの四則演算は、Excelの数式とほぼ同じです。(変数名は全角の文字が使えますが、全角を使うとVBAのコーディングで、半角全角の切り替えが面倒くさいです。)。平均を求めるには、合計÷件数という式になります。合計を表示するセルがないため、合計は変数にするしかありません。

Dim total As Long

total = Cells(1, 2).Value + Cells(2, 2).Value + Cells(3, 2).Value

Cells(4, 2).Value = total / 3

Cellsに割り算の計算結果を入れると端数まで入ります。端数処理をしたい場合は、VBAの中でワークシート関数を使います。

 

VBAに慣れてくると、件数も変数で持たせたくなります。合計も数値が入っている行数は毎回変化するので、変化に対応したい。途中に数値以外があったらそのセルは対象外にしたい。いろいろなケースを想定したくなります。それらを行うには、この章の変数と後の章の条件分岐とループ処理を組み合わせで可能になります。

変数のことは少しわかりましたか?変数はプログラミングで躓く最初のハードルですので、しっかり押さえていただきたいです。