OfficePro

変数

広告

変数とは、値を一時的に保存していくための入れ物です。計算の途中の値を一時的に保存したりするのに使います。

変数を利用するにはまず変数を宣言しておく必要があります。これはプログラムの中で、今後この変数を使いますと明記しておくわけです。宣言の仕方は下記のようになります。

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箇所書き換えるだけで済みます。

サンプル

では一度試してみましょう。

test1.bas

Sub テスト()
    Dim x
    
    x = 100
    Range("A1").Value = x
    Range("A2").Value = x
End Sub

上記のマクロを実行すると次のようになります。

変数の利用

( Written by Tatsuo Ikura )