본문 바로가기
Tip

[Tip] VBA 조건부 서식에 대한 고찰

by 일등미노왕국 2023. 2. 23.

엑셀에서 조건부 서식을 통해서 코드를 관리하면 너무나 편하고 관리하는 측면에서도 좋지만, 코드가 추가로 들어오거나

변동이 되었을 때 조건부 서식이 처음에 세팅한것처럼이 아닌 이상하게 변동이 되는 것을 경험하였을 것이다.

오늘은 이 조건부 서식또한 VBA에 관리 할 수 있는 코드들을 정리해 보려고 한다.

 

1. 값이 0 이상인 셀에 초록색 배경색 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlExpression, Formula1:="=$A1>=0"

Range("A1:A10").FormatConditions(1).Interior.Color = RGB(0, 255, 0)

 

2. 값이 0 이하인 셀에 빨간색 배경색 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlExpression, Formula1:="=$A1<=0"

Range("A1:A10").FormatConditions(1).Interior.Color = RGB(255, 0, 0)

 

3. 값이 100 이상인 셀에 굵은 글꼴 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:="100"

Range("A1:A10").FormatConditions(1).Font.Bold = True

 

4. 값이 100 미만인 셀에 기울임꼴 글꼴 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:="100"

Range("A1:A10").FormatConditions(1).Font.Italic = True

 

5. 값이 10에서 20 사이인 셀에 노란색 배경색 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="10", Formula2:="20"

Range("A1:A10").FormatConditions(1).Interior.Color = RGB(255, 255, 0)

 

6. 값이 "Yes"인 셀에 체크 모양 아이콘 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlTextString, String:="Yes"

Range("A1:A10").FormatConditions(1).IconSet = ActiveWorkbook.IconSets(4)

 

7. 값이 "No"인 셀에 X 모양 아이콘 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlTextString, String:="No"

Range("A1:A10").FormatConditions(1).IconSet = ActiveWorkbook.IconSets(3)

 

8. 값이 1000 이상인 셀에 화살표 모양 아이콘 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:="1000"

Range("A1:A10").FormatConditions(1).IconSet = ActiveWorkbook.IconSets(2)

 

9. 값이 0 이하인 셀에 빨간색 글꼴 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlExpression, Formula1:="=$A1<=0"

Range("A1:A10").FormatConditions(1).Font.Color = RGB(255, 255, 0)

 

10. 값이 50% 이상인 셀에 파란색 배경색 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:="0.5"

Range("A1:A10").FormatConditions(1).Interior.Color = RGB(0, 0, 255)

 

11. 값이 30% 미만인 셀에 노란색 글꼴 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:="0.3"

Range("A1:A10").FormatConditions(1).Font.Color = RGB(255, 255, 0)

 

12. 값이 1020 사이인 셀에 대체 된 값으로 바꾸기

Range("A1:A10").FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="10", Formula2:="20"

Range("A1:A10").FormatConditions(1).Text = "Replacement Text"

 

13. 값이 오늘 날짜와 같은 셀에 녹색 글꼴 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlTimePeriod, Operator:=xlEqual, Formula1:="=$A1"

Range("A1:A10").FormatConditions(1).Font.Color = RGB(0, 255, 0)

 

14. 값이 이전 달과 같은 셀에 분홍색 글꼴 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlTimePeriod, Operator:=xlLastMonth, Formula1:="=$A1"

Range("A1:A10").FormatConditions(1).Font.Color = RGB(255, 192, 203)

 

15. 값이 짝수인 셀에 회색 배경색 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlExpression, Formula1:="=ISEVEN($A1)"

Range("A1:A10").FormatConditions(1).Interior.Color = RGB(192, 192, 192)

 

16. 값이 홀수인 셀에 초록색 글꼴 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlExpression, Formula1:="=ISODD($A1)"

Range("A1:A10").FormatConditions(1).Font.Color = RGB(0, 255, 0)

 

17. 값이 오늘 날짜와 30일 이내인 셀에 파란색 글꼴 적용하기

 

Range("A1:A10").FormatConditions.Add Type:=xlTimePeriod, Operator:=xlLast30Days, Formula1:="=$A1"

Range("A1:A10").FormatConditions(1).Font.Color = RGB(0, 0, 255)

 

18. 값이 1000 이상이고 2000 미만인 셀에 노란색 배경색 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="1000", Formula2:="2000"

Range("A1:A10").FormatConditions(1).Interior.Color = RGB(255, 255, 0)

 

19. 값이 "Yes"인 셀에 파란색 글꼴 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlTextString, String:="Yes"

Range("A1:A10").FormatConditions(1).Font.Color = RGB(0, 0, 255)

 

20. 값이 "Male"인 셀에 파란색 배경색 적용하기

Range("A1:A10").FormatConditions.Add Type:=xlTextString, String:="Male"

Range("A1:A10").FormatConditions(1).Interior.Color = RGB(0, 0, 255)
 
21. 셀 값이 0보다 작은 경우 빨간색 글꼴, 값이 0인 경우 검은색 글꼴
With Range("A1:A10").FormatConditions
    .Delete
    .Add Type:=xlCellValue, Operator:=xlLess, Formula1:="0"
    Range("A1:A10").FormatConditions(1).Font.Color = RGB(255, 0, 0)
    .Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="0"
    Range("A1:A10").FormatConditions(2).Font.Color = RGB(0, 0, 0)
End With

 

22. 셀 값이 0보다 작은 경우 빨간색 글꼴, 값이 0보다 큰 경우 초록색 글꼴

With Range("A1:A10").FormatConditions
    .Delete
    .Add Type:=xlCellValue, Operator:=xlLess, Formula1:="0"
    Range("A1:A10").FormatConditions(1).Font.Color = RGB(255, 0, 0)
    .Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="0"
    Range("A1:A10").FormatConditions(2).Font.Color = RGB(0, 255, 0)
End With

 

23. 셀 값이 오늘 날짜보다 큰 경우 파란색 글꼴, 값이 오늘 날짜인 경우 검은색 글꼴

With Range("A1:A10").FormatConditions
    .Delete
    .Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=TODAY()"
    Range("A1:A10").FormatConditions(1).Font.Color = RGB(0, 0, 255)
    .Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=TODAY()"
    Range("A1:A10").FormatConditions(2).Font.Color = RGB(0, 0, 0)
End With

 

24. 셀 값이 "True"인 경우 녹색 글꼴, 값이 "False"인 경우 빨간색 글꼴

With Range("A1:A10").FormatConditions
    .Delete
    .Add Type:=xlTextString, String:="True"
    Range("A1:A10").FormatConditions(1).Font.Color = RGB(0, 255, 0)
    .Add Type:=xlTextString, String:="False"
    Range("A1:A10").FormatConditions(2).Font.Color = RGB(255, 0, 0)
End With

 

25. 셀 값이 1보다 큰 경우 빨간색 배경색, 값이 1인 경우 노란색 배경색

With Range("A1:A10").FormatConditions
    .Delete
    .Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="1"
    Range("A1:A10").FormatConditions(1).Interior.Color = RGB(255, 0, 0)
    .Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="1"
    Range("A1:A10").FormatConditions(2).Interior.Color = RGB(255, 255, 0)
End With

 

26. 셀 값이 "Yes"인 경우 녹색 배경색, 값이 "No"인 경우 빨간색 배경색

With Range("A1:A10").FormatConditions
    .Delete
    .Add Type:=xlTextString, String:="Yes"
    Range("A1:A10").FormatConditions(1).Interior.Color = RGB(0, 255, 0)
    .Add Type:=xlTextString, String:="No"
    Range("A1:A10").FormatConditions(2).Interior.Color = RGB(255, 0, 0)
End With

 

27.  셀 값이 3과 5 사이인 경우 노란색 글꼴, 그 외의 경우 검은색 글꼴

With Range("A1:A10").FormatConditions
    .Delete
    .Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="3", Formula2:="5"
    Range("A1:A10").FormatConditions(1).Font.Color = RGB(255, 255, 0)
    .Add Type:=xlCellValue, Operator:=xlNotBetween, Formula1:="3", Formula2:="5"
    Range("A1:A10").FormatConditions(2).Font.Color = RGB(0, 0, 0)
End With

 

28. 셀 값이 오늘 날짜보다 이전인 경우 빨간색 글꼴, 값이 오늘 날짜인 경우 검은색 글꼴

With Range("A1:A10").FormatConditions
    .Delete
    .Add Type:=xlCellValue, Operator:=xlLess, Formula1:="=TODAY()"
    Range("A1:A10").FormatConditions(1).Font.Color = RGB(255, 0, 0)
    .Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=TODAY()"
    Range("A1:A10").FormatConditions(2).Font.Color = RGB(0, 0, 0)
End With

 

29.  셀 값이 "Hello"인 경우 노란색 배경색, 값이 "World"인 경우 초록색 배경색

With Range("A1:A10").FormatConditions
    .Delete
    .Add Type:=xlTextString, String:="Hello"
    Range("A1:A10").FormatConditions(1).Interior.Color = RGB(255, 255, 0)
    .Add Type:=xlTextString, String:="World"
    Range("A1:A10").FormatConditions(2).Interior.Color = RGB(0, 255, 0)
End With

 

30. 셀 값이 10보다 큰 경우 빨간색 글꼴, 값이 5보다 작은 경우 파란색 글꼴, 그 외의 경우 검은색 글꼴

With Range("A1:A10").FormatConditions
    .Delete
    .Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="10"
    Range("A1:A10").FormatConditions(1).Font.Color = RGB(255, 0, 0)
    .Add Type:=xlCellValue, Operator:=xlLess, Formula1:="5"
    Range("A1:A10").FormatConditions(2).Font.Color = RGB(0, 0, 255)
    .Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="5", Formula2:="10"
    Range("A1:A10").FormatConditions(3).Font.Color = RGB(0, 0, 0)
End With

 

 

'Tip' 카테고리의 다른 글

[Tip] VBA [ 화상키보드 ]  (0) 2023.03.21
[Tip] VBA 메세지창 자동 닫기  (0) 2023.03.20
텍스트 파일로 바탕화면에 저장하기  (0) 2023.02.16
시트 복사시 이벤트 삭제하기  (0) 2023.02.04
엑사남들의 크리스마스  (0) 2022.12.25

댓글