【VBA】奇数行範囲で重複チェックをするマクロ
時間割編成等で、AB週混合で時間割表を作成した場合に役に立ちそうです。
範囲が飛び飛びだと、worksheetfunction.countif(範囲,検索値)>1 はうまく動作しません。
またfindは補助記述が多くてあまり使いたくありません。
発想を変えて、for nextループ内でoffsetでセルをずらせていき、同一な値の場合、赤で塗りつぶすマクロを組んでみました。
offsetを使うと、ほとんど処理速度も落ちない気がします。
↓コード(備忘録)
Sub 奇数行の重複チェック()
Dim rng, rng2 As Variant
Dim c, r, rr As Long
Range("E3:AH33").Interior.ColorIndex = 0 '★全範囲一旦透明色
For c = 5 To 34 '列
For r = 3 To 33 Step 2 '行
For rr = 2 To 33 - r Step 2 'オフセット
Set rng = Cells(r, c)
Set rng2 = rng.Offset(rr, 0) '★
'重複チェック
If rng = rng2 Or rng = Cells(28, c) Then '28行目は例外で加える
rng.Interior.ColorIndex = 3 '赤
End If
next
next
next
End Sub
では、また(^^)/