Excelマクロで変数を使って計算する
VBA(マクロ)を使うという作業は、パソコンに命令するという作業です。
パソコンには、多くのメモリー(変数)があります。パソコンのメモリーを使いこなすには、変数という仕組みを使います。
ここでは、変数の使い方を説明します。
前回「Excel で VBA(マクロ)を書く」でVBAの書き方を説明しました。
Sub マクロ1()
msgbox "こんにちは"
End Sub
変数は、電卓のメモリーと同じ
変数とは、電卓のメモリー機能と同じ役割をします。
電卓には、M1、M2、…といくつかの値を一時的に記憶するメモリーがあります。
パソコンには無限のメモリーがありますので、わかりやすくメモリー使うために、メモリーに名前を付けて管理するようになっています。
名前を付けたメモリーを変数と呼びます。
使う変数に名前を付ける
VBA(マクロ)の書き方は[Excel で VBA(マクロ)を書く]で説明していますので参照してください。
VBAを書きながら説明します。[変数マクロ]という名前のマクロを定義します。
Sub 変数マクロ()
End Sub
変数マクロの領域にVBAを記入していきます。
下のように記入してください。
Sub 変数マクロ()
Dim A As Integer
Dim B As Integer
Dim C As Integer
A = 1
B = 2
C = A + B
msgbox "答えは " & Str(C) & "です。"
End Sub
VBAコードの説明をします。
1. Dim は、変数を宣言するコマンド(命令)です。
A という名前の変数の箱を準備します。同様に B C を準備します。
2. A = 1 とは、「A に 1 を代入しなさい。」というコマンドです。
3. B = 2 とは、「B に 2 を代入しなさい。」というコマンドです。
4. C = A + B とは、「C に Aの値とBの値を足した結果を代入しなさい。」というコマンドです。
5. msgbox "答えは " & Str(C) & "です。"とは、「答えは、3 です。」と表示しなさい。というコマンドです。
それぞれ A B C という変数に値を代入して、最後に「答えは、3 です。」と表示しました。
[変数マクロ]を実行すると下記のように表示されます。
ここまで、理解できましたでしょうか?
= は、左右が同じということではない
算数での = の意味は、= の右側と左側が同じ値という意味ですが、VBAでは「左右が同じ」いう意味ではありません。
「= の右側の値を = の左側の変数に代入するる」という命令です。
つまり、A ⇐ 1 ということです。
このことから、次のように書くことができます。
A = 3
A = A + 1
この命令について説明します。
1. A に 3 を代入します。(A の値は 3 になります)
2. A に A(3)と 1 を足した値を代入します。(A の値は 4 になります)
Sub 変数マクロ2()
Dim A As Integer
A = 3
A = A + 1
msgbox "答えは " & Str(A) & "です。"
End Sub
[変数マクロ2]を実行すると下図のようになります。
= の意味が理解できましたか?
理解できたら[スキ]、わからないときは下のコメント欄に[コメント]を投稿してください。