同じことを何度も何度もするなんて For~Next
毎回のように作成している記録のマクロですが、コードの意味が
たとえよく分からなくても、便利だなあと思えば使っちゃえばいいのです。
関数だって、エクセルの内部でどのように計算しているかわからなくても、即座に正しい結果が出れば使っています。
でも、そこはマクロ講座ですから、多少なりとも理解を助ける説明を付け加えさせてもらいますが、面倒なら飛ばしてもいいんです。
今回は、繰り返し処理をするFor~Nextを頭に叩き込むことにしましょう。
(サンプルファイルは、こちらから マクロ講座23回サンプルデータ)
はじめに、予備知識としてセルを赤く塗るマクロの記録をしてみましょう。
この記録マクロは、マクロ作成後、For~Nextを使って書き換えます。
さあ、今日もおきまりの実習ですよ。(「あ~、やだ」って言わないの!)
Excel2013で記録マクロを作成する手順は以下の動画をご覧ください。


Sub セルを赤く塗る()
Range("A1").Select
With Selection.Interior
.Pattern = xlSolid ' 網掛けはなし
.PatternColorIndex = xlAutomatic ' 網掛けの色はオート
.Color = 255 '色は赤 RGB(255,0,0)と同じ意味
.TintAndShade = 0 ' テーマカラーの明るさは0
.PatternTintAndShade = 0 ' オブジェクトの濃淡と網掛けパターンは0
End With
'(同様のコードがA10まで繰り返されている)
End Sub
Excel2003で記録した場合は、ColorIndexプロパティが使われるので、6行目の赤く塗るのコードは
.ColorIndex = 3になります。
Sub Macro2()
Range("A1").Interior.ColorIndex = 3
Range("A2").Interior.ColorIndex = 3
Range("A3").Interior.ColorIndex = 3
Range("A4").Interior.ColorIndex = 3
Range("A5").Interior.ColorIndex = 3
Range("A6").Interior.ColorIndex = 3
Range("A7").Interior.ColorIndex = 3
Range("A8").Interior.ColorIndex = 3
Range("A9").Interior.ColorIndex = 3
Range("A10").Interior.ColorIndex = 3
End Sub