0

問題は、ある色で行を強調表示すると、行の元の色がなくなってしまうことです。このコードを試してみましたが、行の元の形式と色が削除されています。

これはhttp://www.mcgimpsey.com/excel/highlightrow.htmlからのコードです

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
        Const cnNUMCOLS As Long = 256
        Const cnHIGHLIGHTCOLOR As Long = 36  'default lt. yellow
        Static rOld As Range
        Static nColorIndices(1 To cnNUMCOLS) As Long
        Dim i As Long
        If Not rOld Is Nothing Then 'Restore color indices
            With rOld.Cells
                If .Row = ActiveCell.Row Then Exit Sub 'same row, don't restore
                For i = 1 To cnNUMCOLS
                    .Item(i).Interior.ColorIndex = nColorIndices(i)
                   Next i
            End With
        End If
        Set rOld = Cells(ActiveCell.Row, 1).Resize(1, cnNUMCOLS)
        With rOld
            For i = 1 To cnNUMCOLS
                nColorIndices(i) = .Item(i).Interior.ColorIndex
            Next i
            .Interior.ColorIndex = cnHIGHLIGHTCOLOR
        End With
    End Sub

それで、私はこの問題をどうしようか?行の選択を解除すると適切に元に戻るように、範囲の履歴色を保持するにはどうすればよいですか?

4

2 に答える 2