- ベストアンサー
行の連続数字を見つけて塗潰す方法
- 行の連続数字を見つけてセルを塗潰す方法について教えてください。
- 5×5のセル内に含まれる行の連続数字を見つけ、それに応じた色でセルを塗潰したいです。
- セル内の数字を分析し、行の連続数字を見つけて塗潰す方法が知りたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sub Test() Dim c As Range Range("A1:K11").Interior.Color = xlNone For Each c In Range("A1:K11") If c.Column = 6 Then ElseIf Val(c.Value) + 1 = Val(c.Offset(, 1).Value) Then If c.Interior.Color = vbWhite Then c.Resize(, 2).Interior.Color = vbYellow ElseIf c.Interior.Color = vbYellow Then c.Offset(, -1).Resize(, 3).Interior.Color = vbRed ElseIf c.Interior.Color = vbRed Then c.Offset(, -2).Resize(, 4).Interior.Color = vbBlue ElseIf c.Interior.Color = vbBlue Then c.Offset(, -3).Resize(, 5).Interior.Color = vbGreen End If End If Next End Sub
その他の回答 (1)
- SI299792
- ベストアンサー率47% (772/1616)
' Option Explicit ' Sub Macro1() ' Dim Colors As Variant Dim Cell As Range Dim BeforeCell As Range Dim StartCell As Range Dim Count As Integer ' [A1:K11].Interior.Pattern = xlNone Colors = Array(vbWhite, vbYellow, vbRed, vbBlue, vbGreen) ' Set BeforeCell = [A1] ' For Each Cell In [A1:L11] ' If BeforeCell > "" And Val(Cell) = Val(BeforeCell) + 1 Then Count = Count + 1 ElseIf Count > 0 Then Range(StartCell, BeforeCell).Interior.Color = Colors(Count) Count = 0 Set StartCell = Cell Else Set StartCell = Cell End If Set BeforeCell = Cell Next Cell End Sub
補足
早速のご回答ありがとうございます。 ソースを貼って実行したところ、 G2,H2の連続数字01,02は黄色の塗潰しになる筈ですが、 空白であるF2も含めて、赤で塗潰しされます。 F列と6行目は4つの5×5のセルがくっつかないために間を取っています。
お礼
いつも回答頂きありがとうございます。 早速実行したところ、F列、6行目をちゃんと空白と捉えて処理されました。 またよろしくお願いします。