エクセルマクロ(EXCEL VBA)

エクセルマクロ(EXCEL VBA) その11 変数について

変数について

いきなりですが、今回は変数についてご紹介します。

変数は「数値」や「文字列」などを入れておける《箱》によく例えられます。
例えば a という変数があったとして、マクロの中で

a = 3

と書けば、一旦 a の中に 3 を入れておくことができます。

同様に

a = "あんぱん"

と書けば、a の中には「あんぱん」という文字列が入ります。

実際にやってみましょう。

開発→Visual Basicから
挿入→標準モジュールを押し、
sub hensu_renshu
というプロシージャを作ります。

変数のプロシージャ

a = 3

としましょう。

a = 3

これだけだと、何も変化はありませんので、この変数aに入った値「3」をA2に入れてみます。

A2はCells(2, 1)ですので、

Cells(2, 1) = a

としましょう。

aの値をA2に入れる

これを実行すると

A2に3が入った

A2には3が入りました。
変数 a そのものが入るのではなくて、a の中身が入るということですね。

試しに、

a = 3 + 7 

に変更してみましょう。

3 + 7に変更

これを実行すると、

10が入った

そうですね。
きっとお分かり頂けたと思いますが、3 + 7 の計算結果である 10 が入ります。

ここからがちょっとややこしいのです。

a = 10
a = a + 5
Cells(2, 1) = a

こうすると、どうなるでしょう?

ややこしい例

とりあえず実行すると

15になった

答えは15でした。

これは、どういうことかというと、

解説

赤線で示した a には、右辺の数値 10 が入ります。
その下の行で、10 + 5 をした結果 15 が青線で示した a に入る。言い換えると青線で書いてある a の中身は 15 という数値で上書きされるということです。
だから、最終的にCells(2, 1)には、15が入力された、というわけなのです。

a = a + 5

これ、僕も最初に出てきたときに「???」となりましたが、この行の意味は、
右辺の計算結果を、左辺の変数に入れる
ということなのです。よくある等式ではないのです。

中学校で習った数学で考えるとありえないヘンテコな式なわけですが、プログラミング分野では平気で登場するので飲み込んで、慣れてください。

次回ももう少し変数に慣れましょう。

 
今回の最終的なコード

Sub hensu_renshu()
a = 10
a = a + 5
Cells(2, 1) = a
End Sub

宿題-11

変数 b に、文字列「プロセニアム」を入れて、
変数 c には、文字列「アーチ」を入れます。
変数 b と 変数 c を結合してD5のセルに「プロセニアムアーチ」を表示してください。

エクセルマクロ(EXCEL VBA) その12 九九の表を作る

(文:森脇孝/エントレ)

関連記事一覧