「あ!さっき入力したメッセージが出た!」
星くんが素直に驚きます。
「当然、こんなこともできる」
八木くんは、プロシージャを次のように書き換えて再び実行しました。
Sub TEST()
Range("A1") = "星くんはVBAに悪戦苦闘しています"
End Sub
「今度は、メッセージが出ないね」
「うん。今回は違うことをやってるんだ」
八木くんはそういって、Excelの画面に切り替えます。
「あ!A1セルの中身が書きかわってる!」
またまた星くんが素直に驚きます。
「あはは。最初にメッセージを表示させたときは、セルの"値"を取り出したんだ。
今やったのはその逆で、セルに"値"を書きこんだのさ。
Rangeオブジェクトというオブジェクトを使えば、セルを自由に操作できることが何となくわかったかい?
この他にも、Excel上にあるほとんどのものが"オブジェクト"として、VBAから操作できるんだ」
星くんの顔が、パッと明るくなります。
「そうか…。オブジェクトを使えばExcelにある様々なものをVBAから自由に操作できるんだ…。
スゴイじゃないか!」
「はは…というか、そのためのVBAなんだけどね。
ちなみに"Range("A1")"というのは"Range("A1").Value"を省略した書き方で、
本当はRangeオブジェクトの"Valueプロパティ"というのを使ってるんだ。
Valueプロパティは、オブジェクトの値を取得/設定するためのプロパティで、
他のオブジェクトでもよく使うから覚えておきなよ」
「他にもRangeオブジェクトのプロパティってあるのかい?」
「たくさんあるよ。Formulaプロパティ、NumberFormatプロパティ、Offsetプロパティ…
このあたりは、一気に覚えてもしょうがないから、必要な時にその都度覚えるといい」
「プロパティの他に、ほらメ…メソなんとかってやつもあったじゃないか」
「メソッドね。メソッドも1つ使ってみようか」