「特にわからなかったところは、どこだい?」
「そうだなあ…特にといえば…やっぱり"オブジェクト"かな。
昨日も説明してもらったけど、いまいちチンプンカンプンだよ」
「オーケイ。じゃあまず、オブジェクトについて説明しようか」
そういって八木くんはExcelを立ち上げました。
「このExcelのワークシートにあるセル、普段、俺たちが文字や数値を入力するところだけど…
これもオブジェクトだよ」
「ええ!?これもオブジェクトなのかい?」
「もちろんさ、オブジェクトじゃなければVBAから操作できないじゃないか。
セルを操作できなかったら、Excel VBAを使う意味なんてないよ。
セルを操作するには"Rangeオブジェクト"というオブジェクトを使うんだ」
八木くんは、VBE(Visual Basic Editor)を立ち上げ、画面の一部を指差しました。
「ここに[Sheet1 (Sheet1)]と書かれたアイコンがあるだろ、とりあえずこれをダブルクリックしてみるよ」
「あ、何か出た」
VBEの画面、右側に真っ白なウィンドウが表示されました。
「今出たのは"コードウィンドウ"といって、VBAのコードを記述するためのウィンドウさ。
星、ここに"Sub TEST"と打ち込んで、[Enter]キーを押してみろよ」
星くんはいわれたとおりに入力し、[Enter]キーを押しました。
「あ、勝手にカッコがついた…。それに書いてもいない行が、勝手に増えてるよ」
「…それでいいんだよ。そういうふうになってるんだ。
この"Sub TEST()"~"End Sub"までが"プロシージャ"といって、プログラムを構成する最小単位になるんだ。
簡単にいえば、これで1つの小さなプログラムになると思っていい。
ここに"MsgBox Range("A1")"と記述して…[F5]キーを押すと」
「あ!また何か出た!…何も書かれていないメッセージが出たよ?」
「うん。"MsgBox"というのはMsgBox関数といって、メッセージを表示させるための関数さ。
"Range("A1")"は、さっきいったRangeオブジェクトで、ここではA1のセルを指してるんだ。
A1のセルには今、何が入っている?」
「A1のセルには…何も入力されてないよ」
「じゃあ、ここに"星くんはVBA初心者です"って入力してみろよ」
星くんがちょっとイヤそうな顔をしながら、セルに文章を入力します。
「もう一度、さっきのプロシージャを実行するよ。
あ、[F5]キーは、プロシージャを実行させるためのショートカットキーなんだ。
押すとカーソルのある場所のプロシージャを実行してくれる。覚えておくと便利だぜ」
そういって八木くんは[F5]キーを押し、プロシージャを再び実行しました。