이 페이지에서
구문
= IsCellColored ( 범위 )
인수구분
형식 설명
범위
필수
Variant
셀 배경색 존재 여부를 확인할 하나 또는 여러 개의 셀·범위입니다.
여러 셀을 입력했을 때 그중 하나라도 배경색이 칠해져 있으면 TRUE 가 반환됩니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요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
로그인 후 댓글을 작성할 수 있습니다.
강민준🤗
2024.08.11 12:31
좋은 자료 감사합니다.🙇♂️