VBA:規則的な飛び飛びセルにoffsetで配列的にカウントを書き込む
学校で使う書類はだいたい行列数が決まっているものが多いので、動的な配列でなくてもだいたい片付きます。
ずっと配列で考えようとしていたのですが、offsetを変数にしてループさせると自由度が高まる気がしたので、備忘録として書いておきます。
こんな感じのことができます。2行3列飛びのセルに1000行までカウントを書き込みました。スピード的には問題ない速さで書き込めました。
for c~の行 と for r~ の行 を入れ替えるとカウント方向を変えられます。
なんとなくいろいろ応用がきくマクロだと思います。
以下、コードです。標準モジュールに書きました。
--------------------------------------------
Option Explicit
Sub ■規則的な飛び飛びセルにカウントを書き込む()
Dim r, c, i As Long
Dim rng As Range
Application.ScreenUpdating = False
For c = 0 To 12 Step 3 '列3飛び★
For r = 0 To 1000 Step 2 '行2飛び★
Set rng = Range("B2").offset(r, c) 'B2セルが起点'■offsetを変数
'rng空白の場合カウント(★For行の入れ替えでカウント方向変えられる)
If rng.Value = "" Then
rng.Value = i + 1 'カウント
rng.Interior.ColorIndex = 4 '緑
i = i + 1
'rngを空白に戻す
ElseIf rng.Value <> "" Then
rng.Clear
End If
Next
Next
Application.ScreenUpdating = True
End Sub
--------------------------------------------------
ちょっと面白いかなと思ったので書いてみました。
では、また(^^)/