- Home ›
- Excel VBA入門 ›
- 基本文法 ›
- HERE
変数
変数とは、値を一時的に保存していくための入れ物です。計算の途中の値を一時的に保存したりするのに使います。
変数を利用するにはまず変数を宣言しておく必要があります。これはプログラムの中で、今後この変数を使いますと明記しておくわけです。宣言の仕方は下記のようになります。
Dim 変数名
「Dim」の後に半角スペースを1つあけて変数名を指定します。変数名には英数字、漢字、アンダーバーなどが利用できます。ただし先頭はアルファベットや漢字など文字でなければなりません。
正しい変数名:
Dim 変数12 Dim var Dim product_name
誤った変数名:
Dim 10Test Dim book@ Dim product name
プログラムの中で複数の変数を使うことができます。
Sub プロシージャ名() Dim name Dim old Dim address End Sub
またまとめて変数を宣言することもできます。変数名をカンマ(,)で続けて記述します。
Sub プロシージャ名() Dim name, old, address End Sub
変数への値の格納
変数は値を格納するための一時的な入れ物ですので、変数を宣言したら変数に値を格納します。値を格納するには次のように記述します。
Dim 変数名 変数名 = 格納したい値
値を格納する時は、左側に変数名、右側に格納したい値を記述し、イコール(=)で結びます。これは左辺と右辺が等しいと書いているのではなく、右辺の値を左辺へ格納するという意味です。
例えば変数「x」に「10」という値を格納したい場合には次のように記述します。
Sub プロシージャ名() Dim x x = 10 End Sub
これで「x」という変数に10という値が格納されました。
また次のような記述の仕方もよく行われます。
Sub プロシージャ名() Dim x x = 10 x = x + 5 End Sub
この場合、まず変数「x」に10という値を格納します。そして次の行で変数「x」に格納されている値に5を加えた値を改めて変数「x」に格納します。結果として変数「x」には15が格納されることになります。これは次のように記述した場合と同じ意味です。
Sub プロシージャ名() Dim x Dim y y = 10 x = y + 5 End Sub
値が格納された変数は「10」と直接記述するかわりに変数名を使って記述することができます。例えば次のようなプログラムがあったとします。
Sub プロシージャ名() Range("A:1").Value = 10 Range("A:2").Value = 10 Range("A:3").Value = 10 End Sub
変数を使って書き直すと次のようになります。
Sub プロシージャ名() Dim x x = 10 Range("A:1").Value = x Range("A:2").Value = x Range("A:3").Value = x End Sub
プログラムの量としては増えてしまっていますが、もし「10」と言う値を後で書き換える場合、最初の例であれば3箇所を書き換えなければなりませんが、変数を使った場合は「x = 10」の部分を1箇所書き換えるだけで済みます。
サンプル
では一度試してみましょう。
Sub テスト() Dim x x = 100 Range("A1").Value = x Range("A2").Value = x End Sub
上記のマクロを実行すると次のようになります。
( Written by Tatsuo Ikura )