[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フィルタ後に1行おきで色づけ』(アーモンド)
以下のコードで偶数行に対しては色づけできます。
しかし、別条件でフィルタをかけ、ランダムに奇数・偶数行を非表示にした場合、
1行おきの色づけが無意味になってしまいます。
フィルタ後の行非表示の見た目のまま、1行おきに色づけする方法はありますか?
Private Sub CheckBox1_Click()
Dim c As Range Dim myRng As Range Dim lastrow As Long lastrow = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row Set myRng = Worksheets("Sheet1").Range("A2:AI" & lastrow)
Application.ScreenUpdating = False If CheckBox1.Value = True Then
For Each c In myRng If c.Row Mod 2 = 0 Then With c.Interior .Color = RGB(234, 241, 221) .Pattern = xlSolid End With End If Next c Else myRng.Cells.Interior.ColorIndex = xlNone End If Application.ScreenUpdating = True End Sub
< 使用 Excel:Excel2007、使用 OS:Windows7 >
範囲選択して、数式 =MOD(ROW(),2)=0
(きんかんぽん) 2014/03/27(木) 11:33
え、それだとフィルタしたら、行番号によっては色つきの行が続いてしまったりしませんか?
コードでは書けませんが例えば条件付き書式で
=MOD(SUBTOTAL(3,$A$1:$A1),2)=0
みたいな条件では如何でしょうか? ( コナミ) 2014/03/27(木) 11:48
Private Sub CheckBox1_Click() Dim i As Long Dim iCou As Long
Application.ScreenUpdating = False With Worksheets("Sheet1") For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row If .CheckBox1.Value = True Then If Rows(i).Hidden = False Then iCou = iCou + 1 With .Range(.Cells(i, "A"), .Cells(i, "AI")).Interior If iCou Mod 2 = 1 Then .Color = RGB(234, 241, 221) .Pattern = xlSolid Else .ColorIndex = xlNone End If End With End If Else .Range(.Cells(i, "A"), .Cells(i, "AI")).Interior.ColorIndex = xlNone End If Next i End With Application.ScreenUpdating = True End Sub (???) 2014/03/27(木) 14:11
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.