「これって、さっき教えてくれたRangeオブジェクトを使ってセルに値を書き込んで、
それをまた取り出して使えば済む話なんじゃないのかなあ…わざわざ変数を使わないといけないのかい?」
「おどろいた…。星、おまえ本当にスジがいいな…」
八木くんが、目を見開いて答えます。
「そのとおり、別に変数を使わなくてもセルに値を書き込んで、それを利用することだってできるよ。
確かにそのとおりだ。でも星、保持したい値がいっぱい出てきたとき、
A1のセルには何の値が入っていて、A2のセルには何の値が入っている…
そんなこといちいち覚えてられるかい?
あと今、使っている変数はプロシージャレベル変数(ローカル変数)といって、
プログラムが終了したときに自動的に変数の値が破棄されるんだけど、
セルに書き込んだ値は、アプリケーションを保存して終了した後もずっと残ってる。
星、用件の済んだメモをいつまでも捨てずにとっておくかい?」
「そんなことはしないなあ…机の上がメモだらけになっちゃうよ」
「うん、それと同じなんだよ。必要のなくなったメモは捨てる。
そうしないと、プログラムがごちゃごちゃで訳がわからなくなってしまう、だから変数を使うメリットがあるんだ。
それともうひとつ、セルに値を書き込んだり取り出したりする処理は、けっこう負荷のかかる処理なんだ。
変数はメモリ上に記憶領域を確保するから、それよりずっと楽で高速に処理できるのさ」
「わかったよ。変数って便利なんだな」
星くんはスッキリした口調でいいました。
「変数のことがだいぶん理解できた様子だな。
本当は変数の型とか、適用範囲や有効期間なども知らなくちゃいけないんだけど…
それはまた、おいおいやっていこう」
「おれのVBA、ロールプレイングゲームでいうとどうだい?レベル10くらいになったかな?」
星くんが自信満々にそういうと、八木くんはプッと吹き出しました。
「まだレベル1もクリアしてないよ。もう少し勉強するとレベル2になれるかな…。
ところでどうだい?もう遅いし、そのへんにメシでも食いに行こうか?」
星くんは、しばらく無言で考えています。
「…いや、今日はこれで帰るよ。借りてる本でもう少し勉強したいんだ…。
ごめん、今度必ずメシをおごるよ!」
そういってイソイソと帰り支度を始めた星くんを、八木くんは暖かい目で見つめていました。