본문 바로가기
■ 칼퇴를 위한 VBA : 사례/- VBA for 엑셀

엑셀 VBA를 이용한 조건부 서식 복사 및 적용 방법

by 포탈메이커 2023. 6. 27.

엑셀 VBA를 이용한 조건부 서식 복사 및 적용 방법

엑셀에서 데이터를 다룰 때, 조건부 서식은 데이터의 이해를 돕고 중요 정보를 시각적으로 강조하는 데 큰 도움이 됩니다. 그러나 대량의 데이터에 대해 수동으로 조건부 서식을 적용하고 관리하는 것은 매우 번거롭습니다. 이런 작업을 자동화하기 위해 VBA(Visual Basic for Applications)를 활용할 수 있습니다.

이번 포스팅에서는 엑셀 VBA를 이용하여 조건부 서식을 복사하고 적용하는 방법에 대해 알아보겠습니다.

 

칼퇴키트, 업무용 도구모음

칼퇴를 위해 꼭 필요한 도구 모음을 제공합니다. 당장의 업무에 필요한 순간 사용하는 가벼운 메모장, 계산기, 변환기 등

portalmaker.backtohome.kr

 

1. 조건부 서식 복사하기

조건부 서식을 적용할 데이터 범위를 지정한 후, VBA를 사용하여 그 서식을 다른 범위에 복사할 수 있습니다. 아래는 조건부 서식을 복사하는 VBA 스크립트 예시입니다.

Sub CopyConditionalFormatting()
    Dim sourceRange As Range
    Dim destinationRange As Range

    Set sourceRange = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
    Set destinationRange = ThisWorkbook.Sheets("Sheet1").Range("B1:B10")

    sourceRange.Copy
    destinationRange.PasteSpecial Paste:=xlPasteFormats
    Application.CutCopyMode = False
End Sub

위 코드는 "Sheet1"의 "A1" 범위에 적용된 조건부 서식을 "B1" 범위에 복사합니다.


2. 조건부 서식 적용하기

VBA를 사용하여 새로운 조건을 기반으로 조건부 서식을 프로그래밍 방식으로 설정할 수 있습니다. 아래는 조건부 서식을 적용하는 VBA 스크립트 예시입니다.

Sub ApplyConditionalFormatting()
    Dim targetRange As Range
    Dim condition As FormatCondition

    Set targetRange = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")

    ' 기존의 조건부 서식을 모두 제거
    targetRange.FormatConditions.Delete

    ' 새로운 조건부 서식 추가
    Set condition = targetRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreater, Formula1:="5")
    condition.Font.Bold = True
    condition.Font.Color = RGB(255, 0, 0)
End Sub

이 코드는 "Sheet1"의 "A1" 범위에 값이 5보다 큰 경우 해당 셀의 글꼴을 굵게 하고 빨간색으로 변경하는 조건부 서식을 적용합니다.


3. 조건부 서식 복사하고 적용하기

복사한 조건부 서식을 다른 범위에 적용한 후 추가적인 조건을 설정할 수도 있습니다. 아래는 조건부 서식을 복사한 후 추가 조건을 적용하는 VBA 스크립트 예시입니다.

Sub CopyAndApplyConditionalFormatting()
    Dim sourceRange As Range, destinationRange As Range
    Dim condition As FormatCondition

    Set sourceRange = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
    Set destinationRange = ThisWorkbook.Sheets("Sheet1").Range("B1:B10")

    ' 서식 복사
    sourceRange.Copy
    destinationRange.PasteSpecial Paste:=xlPasteFormats
    Application.CutCopyMode = False

    ' 추가 조건 설정
    Set condition = destinationRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlLess, Formula1:="3")
    condition.Interior.Color = RGB(0, 255, 0)
End Sub

이 스크립트는 "A1"의 조건부 서식을 "B1"에 복사한 후, "B1" 범위에 값이 3보다 작을 경우 셀 배경색을 녹색으로 변경하는 추가 조건을 설정합니다.


 

4. 마치며

엑셀 VBA를 사용하여 조건부 서식을 자동으로 복사하고 적용함으로써, 대량의 데이터 처리 작업의 효율성을 높일 수 있습니다. 이 방법은 반복적인 작업을 줄여주고 데이터의 시각적 분석을 빠르고 정확하게 수행할 수 있게 도와줍니다.



포스팅이 도움이 되셨다면 구독, 공감, 댓글 부탁드려요!

행복한 하루 되세요!