Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

VBA 매크로를 활용하는 것은 Excel에서 어떤 작업이든 가장 효과적이고 빠르며 안전하게 처리할 수 있는 방법입니다. 이 글에서는 데이터 집합의 글꼴 색상이 빨간색일 경우 VBA를 사용해 특정 결과를 얻는 방법을 단계별로 소개합니다.

실습 파일 다운로드

무료 실습용 Excel 워크북은 여기에서 다운로드할 수 있습니다.

글꼴 색상이 빨간색인지 확인해 결과를 반환하는 6가지 방법

아래 데이터 집합에는 일부 값이 빨간색 글꼴로 입력되어 있습니다. 이번 섹션에서는 글꼴 색상이 빨간색일 때 원하는 결과를 얻는 절차를 하나씩 살펴보겠습니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

1. 글꼴 색상이 빨간색이면 특정 단어 반환하기

글꼴 색상이 빨간색이면 Yes, 아니면 No를 반환하도록 만들어 보겠습니다. Excel VBA로 구현하는 방법은 다음과 같습니다.

단계:

  • 키보드에서 Alt + F11을 누르거나 개발 도구 -> Visual Basic 탭으로 이동해 VBA 편집기(Visual Basic Editor)를 엽니다.
  • 코드 창 상단 메뉴에서 삽입 -> 모듈을 클릭합니다.
  • 아래 코드를 복사해 코드 창에 붙여넣습니다.
Function FontColorRed(target As Range)
    Application.Volatile
    If target.Font.Color = 255 Then
    FontColorRed = "Yes"
    Else
    FontColorRed = "No"
    End If
End Function

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

이 코드는 매크로를 직접 실행하는 Sub 프로시저가 아니라 사용자 정의 함수(UDF)를 만드는 코드입니다. 따라서 코드 작성 후에는 메뉴 모음의 실행 버튼 대신 저장을 클릭합니다.

  • 이제 해당 워크시트로 돌아가 방금 만든 함수를 입력합니다. FontColorRed 함수의 괄호 안에 결과를 확인할 셀 참조(예: C5)를 인수로 전달합니다.

최종 수식은 다음과 같습니다.

=FontColorRed(C5)

  • Enter 키를 누릅니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

C5 셀의 글꼴 색상이 빨간색이면 Yes, 그렇지 않으면 No가 표시됩니다. 예시에서는 C5 셀의 글꼴이 빨간색이 아니므로 No가 반환되었습니다.

  • 채우기 핸들(Fill Handle)을 아래로 끌어 나머지 셀에도 UDF를 적용하면, 빨간색 글꼴이 적용된 셀 옆에 Yes가 표시됩니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

2. 글꼴 색상이 빨간색일 때 색상 코드 반환하기

이번에는 VBA를 사용해 빨간색 글꼴의 색상 코드(ColorIndex)를 추출하는 방법을 알아보겠습니다.

단계:

  • 앞서와 같이 개발 도구 탭에서 VBA 편집기를 열고 코드 창에 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해 붙여넣습니다.
Function ColorCode(rng As Range)
    ColorCode = rng.Font.ColorIndex
End Function

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

  • 이전과 동일한 방식으로 ColorCode UDF를 호출하고, 셀 참조(예: C5)를 인수로 전달한 뒤 Enter 키를 누릅니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

해당 글꼴 색상에 연결된 색상 코드가 반환됩니다.

  • 채우기 핸들을 아래로 끌어 나머지 셀에도 UDF를 적용하면 빨간색 글꼴의 색상 코드를 일괄 확인할 수 있습니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

3. 글꼴 색상이 빨간색이면 색상 인덱스 번호 반환하기

이번에는 VBA를 사용해 글꼴 색상의 인덱스 번호를 반환하는 방법을 알아보겠습니다.

단계:

  • 같은 방식으로 VBA 편집기를 열고 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해 붙여넣습니다.
Function IndexColor(cell As Range)
        IndexColor = cell.Font.Color
End Function

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

  • 앞선 방법과 동일하게 IndexColor UDF를 호출하고, 셀 참조(예: C5)를 인수로 전달한 뒤 Enter 키를 누릅니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

글꼴 색상에 해당하는 인덱스 번호가 반환됩니다.

  • 채우기 핸들을 아래로 끌어 나머지 셀에도 적용하면 빨간색 글꼴의 인덱스 번호를 확인할 수 있습니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

빨간색 글꼴이 적용된 셀은 255를 반환합니다. 색상 빨간색(red)의 인덱스 번호가 바로 255이기 때문입니다.

4. 글꼴 색상이 빨간색일 때 RGB 코드 반환하기

이번에는 VBA를 사용해 빨간색 글꼴의 RGB 코드를 구하는 방법을 알아보겠습니다.

단계:

  • 같은 방식으로 VBA 편집기를 열고 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해 붙여넣습니다.
Function FontRGB(cell As Range)
    Dim iColorIndex As Long
    Dim iColor As Variant
    iColorIndex = cell.Font.Color
    iColor = iColorIndex Mod 256
    iColor = iColor & ", "
    iColor = iColor & (iColorIndex \ 256) Mod 256
    iColor = iColor & ", "
    iColor = iColor & (iColorIndex \ 256 \ 256) Mod 256
    FontRGB = iColor
End Function

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

  • 동일한 방법으로 FontRGB UDF를 호출하고, 셀 참조(예: C5)를 인수로 전달한 뒤 Enter 키를 누릅니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

글꼴 색상에 해당하는 RGB 코드가 반환됩니다.

  • 채우기 핸들을 아래로 끌어 나머지 셀에도 적용하면 빨간색 글꼴의 RGB 코드를 일괄 확인할 수 있습니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

빨간색 글꼴이 적용된 셀은 255,0,0을 반환합니다. 색상 빨간색(red)의 RGB 코드가 바로 255,0,0이기 때문입니다.

5. 글꼴 색상이 빨간색인 셀 강조하기

빨간색 글꼴로 입력된 셀 자체를 강조하고 싶다면 아래 방법을 활용해 보세요.

단계:

  • 같은 방식으로 VBA 편집기를 열고 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해 붙여넣습니다.
Sub HighlightCell()    
    Set ws = Sheets("Highlight") 'set the worksheet    
    For r = 1 To 104
        For c = 1 To 36
            If (ws.Cells(r, c).Font.Color = 255) Then
                'set the desired color index
                ws.Cells(r, c).Interior.ColorIndex = 34
            End If
        Next c
    Next r
End Sub

이제 코드를 실행할 준비가 되었습니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

  • 키보드에서 F5 키를 누르거나, 메뉴 모음에서 실행 -> Sub/UserForm 실행을 선택합니다. 하위 메뉴 막대의 재생 아이콘을 클릭해 매크로를 실행할 수도 있습니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

그러면 빨간색 글꼴이 적용된 셀이 지정한 색상으로 강조 표시됩니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

6. 글꼴 색상이 빨간색인 경우 기본 색상으로 되돌리기

빨간색으로 설정된 글꼴 색상을 다시 기본 색상으로 변경하고 싶다면 아래 단계를 따라 해 보세요.

단계:

  • 같은 방식으로 VBA 편집기를 열고 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해 붙여넣습니다.
Sub ChangeFontColor()
    With Application.FindFormat.Font
        .Subscript = False
        .Color = 255
        .TintAndShade = 0
    End With
    With Application.ReplaceFormat.Font
        .Subscript = False
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
    End With
    Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
    xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
End Sub

이제 코드를 실행할 준비가 되었습니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

  • 매크로를 실행합니다.

Excel VBA로 글꼴 색상이 빨간색인지 확인하고 결과 반환하는 6가지 방법

그러면 빨간색으로 설정된 글꼴이 모두 기본 글꼴 색상으로 되돌려집니다.

마무리

이 글에서는 데이터 집합의 글꼴 색상이 빨간색일 때 VBA를 사용해 다양한 결과를 얻는 6가지 방법을 살펴보았습니다. Yes/No 반환부터 색상 코드, RGB 코드 추출, 셀 강조, 색상 초기화까지 실무에서 바로 활용할 수 있는 내용이니 상황에 맞게 응용해 보시기 바랍니다. 주제와 관련해 궁금한 점이 있다면 언제든 질문해 주세요.

함께 읽으면 좋은 글

  • Excel VBA로 문자열에서 문자 제거하기 (7가지 방법)
  • VBA로 Excel에서 빈 행 삭제하는 방법
  • 조건에 따라 Excel에서 VBA 매크로로 행 삽입하기 (4가지 방법)
  • Excel에서 VBA로 행 개수 세는 방법 (5가지 접근법)
  • 셀 값을 기준으로 VBA로 전체 행 삭제하기 (3가지 방법)