스프레드시트의 셀 값에 따라 자동으로 색상 채우기

스프레드시트의 셀 값에 따라 자동으로 색상 채우기

질문 :회색조 값이 셀 값과 동일한 색상으로 스프레드시트의 각 셀을 채울 수 있습니까?

설명 :

다음과 같은 스프레드시트가 있다고 가정해 보세요.

여기에 이미지 설명을 입력하세요

모든 값은 0-255(256 회색조 색상에 해당) 사이에 있습니다. 이제 값이 셀의 값인 색상으로 각 셀을 채우고 싶습니다. 따라서 예상되는 출력은 다음과 같습니다.

여기에 이미지 설명을 입력하세요

또한 각 셀의 글꼴 색상은 배경색에 해당하는 검정색 또는 흰색입니다.

Excel에서 이 작업을 몇 가지 단계로 또는 한 번에 수행할 수 있는 간단한 방법이 있습니까?

답변1

셀을 반복하고 셀의 값을 읽고 다음과 같이 색상에 할당하는 매크로를 만듭니다.

Range("A1:A6").Interior.Color = RGB(200,160,35)

답변2

TheUser1024가 옳으며 내 투표권이 있습니다.

바로 사용할 수 있는 솔루션은 다음과 같습니다.

Public Sub Demo()
  Dim cel As Range
  Dim myRange As Range

  Set myRange = Range("A1:E10")

  For Each cel In myRange
    cel.Interior.Color = RGB(cel.Value, cel.Value, cel.Value)
    If cel.Value > 127 Then
      cel.Font.Color = RGB(0, 0, 0)
    Else
      cel.Font.Color = RGB(255, 255, 255)
    End If
  Next cel
End Sub

편집하다:

이 코드는 문자열이나 음수 값의 경우에도 깨지지 않습니다.

Public Sub Demo()
  Dim cel As Range
  Dim greytone As Long
  Dim myRange As Range

  Set myRange = Range("A1:E10")

  For Each cel In myRange
    greytone = CLng(Abs(Val(cel.Value)))
    cel.Interior.Color = RGB(greytone, greytone, greytone)
    If greytone > 127 Then
      cel.Font.Color = RGB(0, 0, 0)
    Else
      cel.Font.Color = RGB(255, 255, 255)
    End If
  Next cel
End Sub

관련 정보