메뉴
실무 위키VBA 코드IsCellColored

IsCellColored

Function

선택한 셀이나 범위에 배경색이 칠해져 있는지 확인하는 VBA 사용자 지정 함수입니다.

IsCellColored 코드 미리보기
구문 = IsCellColored ( 범위 )
인수구분 형식 설명
범위 필수 Variant
셀 배경색 존재 여부를 확인할 하나 또는 여러 개의 셀·범위입니다.
여러 셀을 입력했을 때 그중 하나라도 배경색이 칠해져 있으면 TRUE 가 반환됩니다.

마스터 코드

복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요
Module1 · 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

활용 예제

범위에 배경색이 칠해진 셀이 있는지 확인
= IsCellColored ( B2:D10 )
'// 범위 안에 흰색이 아닌 배경색이 하나라도 있으면 TRUE 를 반환합니다.
떨어져 있는 여러 범위를 한 번에 확인
= IsCellColored ( B2:B10, D2:D10, F5 )
'// 세 범위 중 한 곳이라도 배경색이 있으면 TRUE 를 반환합니다.

안내사항

IsCellColored 함수는 셀의 Interior 속성을 사용하는데, 셀 값 변경과 달리 서식 변경은 함수 재계산에 영향을 주지 못합니다.
따라서 이미 참조한 셀의 배경색을 바꾸면 기존 결과값이 그대로 유지됩니다.
Ctrl + Alt + Shift + F9 로 수식을 모두 새로고침하거나 수식을 새로 입력해 값을 갱신합니다.
댓글 1
5 (1개 평가)
강민준🤗
강민준🤗 2024.08.11 12:31
좋은 자료 감사합니다.🙇‍♂️
스크랩 완료