Чтобы использовать событие изменения:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Call fillcolour(Cells(1, 1))
Application.EnableEvents = True
End Sub
Function fillcolour(ring As Range) As Variant
fillcolour = ring.DisplayFormat.Interior.Color
Cells(1, 2) = fillcolour
End Function
Каждый раз, когда вы изменяете содержимое ячейки, в ячейке B1 будет отображаться цвет фона (даже если он получен из условного формата).
Однако это событие возвращает цель со строкой и столбцом, вызвавшим событие (среди прочего, Target.Row, Target.Column). Вы можете использовать эту цель, чтобы обнаружить внесенные вами изменения непосредственно в ячейке.
Это событие не происходит, когда ячейки меняются во время нового расчета. Используйте событие Calculate, чтобы обнаружить изменение в вашем диапазоне / ячейке.