トップページ

#4_1 変数の基礎


変数とは

変数と聞くと本格的なプログラミングっぽい響きですが、意味や使い方は他のプログラミング言語と全く同じです。

要するに値を格納しておく箱です。この箱から値を取り出すことができますし、値を変更することもできます。

例えば簡単な例として、MsgBoxを用いた以下の例を見てみましょう。

この場合、一番左のシートの名前をNameプロパティで取得し、その値を左辺のWSNameという変数に格納しています。

その後、MsgBoxを用いてWSNameに格納された値をダイアログボックスに表示しています。

変数の宣言(Dimステートメント)

変数はDimステートメントを用いて明示的に宣言できます。

Dimの後に変数名を書くことで、「これは自分が定義した変数です」と宣言されるのです。

変数に制限をかける(Option Explicitステートメント)

変数の宣言自体はDimステートメントによって実現できますが、実はこれだけだと「宣言されていない変数」も使用できてしまいます。そうすると、マクロ全体の構造が把握しづらいだけでなく、変数のスペルミスを発見できないという致命的なバグにつながります。

それを解決するのがOption Explicitステートメントです。これをモジュールの先頭に記述することで、「Dimで宣言した変数」のみ使えるようになります。

従って、今後はモジュールの先頭に必ずOption Explicitを記述してください。

しかし、毎回毎回同じ文字を入力するのは面倒くさいと思うので、[ツール]-[オプション]-[編集]から「変数の宣言を強制する」にチェックを入れましょう。そうすることで以後自動的にOption Explicitが挿入されます。

文字列と変数の連結(&演算子)

先ほどのMsgBoxの中で、2つの固定文字列と変数WSnameを&で連結していますが、これは&演算子と呼ばれ、文字列を連結するための演算子です。

連結する際にダブルクォーテーション(” ”)で囲むのは文字列のみです。変数はダブルクォーテーションで囲んではいけません。囲んでしまうと変数名(WSName)も文字列として扱われてしまうためです。

演算子の種類

せっかくなので、その他の演算子も見ていきましょう。VBAで使われる演算子には大きく4つの種類があります。

1. 算術演算子

「+」「ー」「×」「÷」と言った算術計算を行うための演算子で、数が多いため下の図にまとめました。

2. 文字列演算子

先ほどの「&演算子」のことです。文字列を連結する際に用います。

3. 比較演算子

「>」「<」「>=」「=<」「==」[!=]など、2つの変数の値の大小比較等、条件の比較を行う際に使用します。

4. 論理演算子

「And」「Or」など、条件を記述するときに使用します。状態を反転させる「Not」のみすでに紹介しました。詳しくは後の章で解説します。