見出し画像

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]を実行すると下図のようになります。

= の意味が理解できましたか?

理解できたら[スキ]、わからないときは下のコメント欄に[コメント]を投稿してください。