엑셀 셀 배경색 존재 여부를 확인하는 함수 :: IsCellColored 함수 사용법
함수 구문
= IsCellColored ( 범위 )
사용된 인수
- 범위 : 셀 배경색 존재 여부를 확인할 하나 또는 여러개의 셀/범위입니다.
설명
IsCellColored 함수는 선택된 범위 또는 셀의 배경색이 칠해져있는지 여부를 확인하는 함수입니다. 셀 배경색이 칠해져 있을 경우 함수의 결과값으로 TRUE가 반환됩니다.
인수로 여러개의 셀 또는 범위를 입력할 수 있습니다. 만약 여러 셀이 입력되었을 경우, 그 중 하나라도 배경색이 칠해져있으면 함수결과로 TRUE가 반환됩니다.
예제파일 다운로드
- [엑셀VBA함수] IsCellColored :: 셀 배경색 존재여부 확인예제파일
사용예제
IsCellColored 함수는 배경색 존재여부를 확인합니다. 주의사항
엑셀 IsCellColored 함수는 셀의 Interior 속성을 사용합니다. Interior 속성의 변경은 셀의 값을 변경하는것과 다르게, 함수를 재계산하는데에 영향을 주지 못합니다.
따라서 기존에 참조됬던 셀의 색상을 변경하더라도, IsCellColored 속성의 값은 기존값이 유지됩니다.
만약 기존 참조되어 있던 셀의 배경색을 변경할경우, 키보드 Ctrl + Alt + Shift + F9 키로 수식을 모두 새로고침하거나 또는 수식을 새로 입력하여 값을 업데이트 합니다.
IsCellColored 함수에 사용된 전체 명령문
Option Explicit Function IsCellColored(ParamArray vaRngs() As Variant) As Boolean Dim vaRng As Variant Dim Rng As Range For Each vaRng In vaRngs For Each Rng In vaRng If CheckColour(Rng) <> 16777215 Then IsCellColored = True: Exit Function End If Next Next IsCellColored = False End Function Public Function CheckColour(r As Range, Optional isFont As Boolean = False) Application.Volatile If isFont = False Then CheckColour = r.Parent.Evaluate("GetColor(" & r.Address(False, False) & ")") Else CheckColour = r.Parent.Evaluate("GetFontColour(" & r.Address(False, False) & ")") End Function Public Function GetColor(r As Range): GetColor = r.DisplayFormat.Interior.Color: End Function Public Function GetFontColor(r As Range): GetFontColor = r.DisplayFormat.Font.Color: End Function
명령문 주요 구문 설명
- 입력받은 범위를 하나씩 돌아가며 배경색으로 '채우기 색상이 있을 경우'를 확인합니다.
For Each vaRng In vaRngs For Each Rng In vaRng If CheckColour(Rng) <> 16777215 Then
- 만약 셀의 배경색이 칠해져있다면, IsCellColored 함수 결과값을 TRUE로 반환한 뒤 함수를 종료합니다.
IsCellColored = True: Exit Function End If Next Next
- 배경색이 칠해진 셀이 없을 경우, IsCellColored 함수의 결과값을 FALSE로 반환한 뒤 함수를 종료합니다.
IsCellColored = False
- 입력받은 범위를 하나씩 돌아가며 배경색으로 '채우기 색상이 있을 경우'를 확인합니다.