「よし。それじゃあ早速、コードの細かいところを見ていこう。まずFor…Nextステートメント、
「i = 最初の行から」の最初の行には、何が入るんだい?」
「…えっと、1行目の1かな…?」
「ちがうよ、星。1行目は、項目名が記述されている行だろう?
データが入力されているのは2行目だから、ここには2が入るよ」
「…あ!そっか。1行目は処理しなくてもいいんだね」
「じゃあ次の、"最後の行まで"。ここには何が入る?」
「それは………そうだ、データの入力されている最後の行番号をいれればいいんだね?」
「そのとおり。仮にデータの入力されている最後の行が20000行なら、ここに20000を入力するんだ。
じゃあ、次。"A列のセルのフォント色が赤だったら"の条件には、何を記述すればいい?」
「………」
星くんは、黙り込んでしまいました。
「…だめだ、想像もつかないよ。何を記述すればいいんだい?」
「うん、ここはわからなくて当然だ。これは、あとでイイ方法を教えるよ。じゃあ、最後の"B列のセルに1を代入"、ここには何を記述すればいい?」
「…うーん。ただのB2のセルやB3のセルに1を代入するだけなら、
教えてもらった"Range("B2") = 1"や"Range("B3") = 1"でいいんだけどなあ…」
星くんが、腕を組んでくやしがります。
「いい線いってるじゃないか、星。ほぼ、それで正解だよ。
あとはFor…Nextステートメントのカウンタ変数に注目するんだ。カウンタ変数は2、3、4…と1づつ増分する。
だからRangeオブジェクトの記述を"Range("B" & i) = 1"という具合に、カウンタ変数を行番号に利用すればいいんだよ」
「ええっ!?そんなことしていいのかい??」
「うん。ホントはこういったケースでは"Cellsプロパティ"を使う方が、より美しいコードが書けるんだけど…
とりあえず時間がない。コードとしてはちょっと汚いけど、こういったRangeオブジェクトの使い方でもオッケーだよ」
「なるほどなあ…」
星くんは八木くんの解説に、しきりに感心します。
「よし、じゃあここまでにわかったコードを記述していこう。
ここからは紙じゃなく、VBEのコードウィンドウに入力するんだ。
ついでに"Sub"~"End Sub"の記述もしてプロシージャの形にするんだぜ。
あ、あとカウンタ変数の"i"を宣言するのも忘れずにな」
星くんは八木くんのPCを借り、必死になってコードを作成していきます。