マクロ講座23回

繰り返し処理をするFor〜Nextステートメント

前回の、「一行おきに空白セルを挿入するマクロ」ですが、コードの意味が
たとえよく分からなくても、便利だなあと思えば使っちゃえばいいのです。

でも、そこはマクロ講座ですから、多少なりとも理解を助ける説明をしなくれてはいけませんね。

今回は、For〜Nextを頭に叩き込むというわけです。
(サンプルファイルは、こちらから マクロ講座23回サンプルデータ

準備:セルを赤く塗るマクロ記録

そのまえに、予備知識としてセルを赤く塗るマクロの記録をしてみましょう。

さあ、今日もおきまりの実習ですよ。(「あ〜、やだ」って言わないの!)

(1)マクロの記録を開始、
(2)A1セルを選択し、ツールバーの色パレットボタンでセルを赤く塗ります。
  A2セルを選択し、セルを赤く塗ります。
  A3セルを選択し、セルを赤く塗ります。
  A4セルを選択し、セルを赤く塗ります。
・・・
  A10セルを選択し、セルを赤く塗ります。
(3)A1:A10までのセルが赤く塗られました。
  マクロの記録を終了します。

記録終了ボタンを押します。
自動記録で作成したマクロを見てみましょう。

Sub Macro1()
    Range("A1").Select
    With Selection.Interior
        .ColorIndex = 3
        .Pattern = xlSolid
    End With
    Range("A2").Select
    With Selection.Interior
        .ColorIndex = 3
        .Pattern = xlSolid
    End With
(同様のコードがA10まで繰り返されている)
End Sub
    
スポンサーリンク
スポンサーリンク

コードの解説です。

A1セルの範囲を選択して、
  その選択された部分の内側の色をカラーパレットの3番の色にする
  その選択された部分の内側の塗りつぶしパターンをSolidとする
  (同様の内容が、A10まで繰り返し)

という意味になります。

Selectionは選択されているもの
Interiorは、内部を意味し、
ColorIndexは、カラーパレットの色です。
Patternは、塗りつぶしのパターンです。


3番がなぜ赤になる?というと、

カラーパレットの色は、左上が1番で左から右、
上から下の順番に番号がふられています。だから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   
    
スポンサーリンク
スポンサーリンク