Excel VBA(マクロ)には数式が出てきます。
数式って言うと中学や高校での数学を思い出す方も多いと思います。
a = 10
a = b + 1
a + b = c + 15
上記のような数式は中高生のときに何回も勉強しました。
数式には左辺と右辺があり、イコールで結ぶ形を取ります。
さて、Excel VBA に出てくる四則演算の数式は、いわゆる数学の数式とは少し意味が違います。
今日は、Excel VBA における四則演算の数式についてお話しします。
1、Excel VBA(マクロ)で出てくる数式
Excel VBA で数式を使うケースとしては、変数に値を入れる場合とセルに値を表示する場合があります。
(他にもありますが、初心者の方はこの2つを覚えておけば良いかと思います。)
変数に値を入れる場合
変数に値を入れるというのはどういうことか? についてお話しします。
変数についてはこちらの記事を参考にして下さい↓
a という変数があったとします。
そして、この a に数字の 100 を入れたい場合
a = 100
と記述します。
また、a に 100+200 の計算結果を入れたい場合
a = 100 + 200
と記述します。
この↑ 100 + 200 の計算結果である 300 が変数 a に入るわけですね。
さて、仮に変数に値を入れ込む以下の VBA コードを実行してみましょう。
1 2 3 4 5 |
Sub Test() a = 100 + 200 End Sub |
上記コードを実行しても、見た目には何も起こりません。
a に 300という数字が入っただけだからです。
セルに表示はさせていません。
セルに値を表示する場合
さて、次にセルに値を表示するということについてお話しします。
セルA1 100 と表示させたい場合は
Cells(1, 1).Value = 100
と記述します。
また、セルA1 に 100 + 200 の計算結果を表示したい場合
Cells(1, 1).Value = 100 + 200
と記述します。
Cells(1, 1).Value というのはセル A1の値という意味になります。
さて、VBE を開き(Alt + F11)セル以下の VBA コードを実行してみましょう。
1 2 3 4 5 |
Sub Test() Cells(1, 1).Value = 100 + 200 End Sub |
セルA1 に300と表示されることが確認できます。
右辺はやりたい計算、左辺はその結果の処理
さて、冒頭でお話ししました数式という見方をすると上記の変数に値を入れる場合もセルに値を表示する場合も両方とも数式を使ってますよね。
しかし、以下の① ② の2つだと右辺では同じ計算をしていますが、VBA コードの実行結果は違いましたね。
①
a = 100 + 200
②
Cells(1, 1).Value = 100 + 200
①の場合は、何も起こらなくて②の場合はセルA1に 300と表示されました。
その違いはどこから来るのでしょう?
100 + 200 という計算をやりたいわけで、① ②とも右辺でそれを行っています。
違いは左辺にあります。
①は a という変数に 100 + 200 の計算結果を入れるだけ。どこかに表示はさせません。
一方で②はセルA1に 100 + 200 の計算結果を表示させます。
左辺は右辺で計算した結果をどうするか(結果の処理)を表しているのです。
左辺が a の場合は、a という変数に入れ込む
左辺が Cells(1, 1) の場合は、A1 に表示させる
次のように変数に入れ込んだ後に、表示させることもできます。
1 2 3 4 5 6 7 |
Sub Test() a = 100 + 200 Cells(1,1).Value = a End Sub |
上記を実行すrとセル A1 に 300 と表示されることが確認できます。
左辺は必ず1つの要素でなければならない
さて、数学の数式ならば
a = 10
a = b + 1
a + b = c + 15
これらのように左辺、右辺とも1つまたは複数の要素のものがあります。
Excel VBA の場合、左辺は必ず一つの要素でなければいけません。
例えば
Cells(1, 1).Value + Cells(1, 2).Value = 100
のように記述するとエラーが出ます(コードが赤くなる)。
a + b = 100
と記述することもできません。
「右辺で計算した結果をどうするか(結果の処理)」を意味する左辺に複数の要素を持ってくることはできないのです。
2、繰り返し処理 Do 文の中で出てくる変数の増加
さて、Excel VBA には繰り返し処理の Do 文があります。
Do 文についての詳細は上記↑ 記事を確認して頂きたいです。
Do 文の中によく出てくる変数 i を用いた
i = i + 1
という数式。
これは先にお話ししました、右辺で計算した結果を変数に入れ込むパターンですね。
右辺では i + 1 という計算をやりたいわけです。
そして、左辺では右辺の i + 1 の計算結果を変数 i に入れ込んでいます。
左辺の i は「次の i」
右辺の i は「前の i」
という意味にもなります。
次の i(左辺)は前の i(右辺)に1を足した結果ということになるわけです。
3、まとめ
Excel VBA に出てくる四則演算の数式についてお話ししました。
数学の数式と似ていても少しことなります。
プログラミングでのルールを身に付けるようにしましょう!
編集後記
昨日(11/14)は一般社団法人の決算対応。
なんとか終わりました。
仕事の後は歯医者へ。あと2回ほど通院が必要なようです。