엑셀 매크로 여러단어 구분값으로 입력 한번에 찾아 글자색 색변환 자동 적용하기
지난 엑셀 강좌에서 엑셀 단어를 입력하면 특정 글자색으로 자동 변경하는 방법을 포스팅했습니다.
댓글 문의에 하나에 하나씩 말고 여러 단어를 한 번에 색 지정을 하고 싶다는 댓글이 달렸었는데요.
예를 들어 빨강, 파랑을 입력해서 한 번에 글자색을 변경한다는 것이지요
그래서 업그레이드 버전으로 여러 단어를 한 번에 찾아 글자색 변경하는 방법을 알아보겠습니다.
[아래 이전 포스팅 참조]
간단한 엑셀 예제를 준비했습니다.
지난번 단어 하나를 가지고 찾는 방법을 간단히 진행해보면
글자색 변경하려는 색을 드래그로 지정 후 상단 메뉴 중 [보기]-[매크로]를 클릭합니다.
지난 강좌에서 생성했던 매크로를 선택 후 [실행] 버튼을 클릭합니다.
글자색 변환 안내 창이 열리면 단어를 입력 후 [확인] 버튼을 클릭합니다.
해당 글자색이 변경되었습니다.
이렇게 지난 강좌를 진행했었는데요.
이번엔 여러 단어를 한 번에 입력해서 글자색을 모두 변경해보겠습니다.
"Alt + F11" 키를 눌러 Microsoft Visual Basic for Application 창이 열리면
현재 통합문서에서 마우스 우클릭 후 [삽입-[모듈]을 클릭합니다.
편집 창이 열리면 아래 내용을 입력합니다.
Sub WordColorInput()
Dim cell As Range, word As String, startIndex As Integer, word1 As String
Dim xArr
Dim xCount As Long
word = InputBox(Prompt:="글자색을 변경할 단어를 입력하세요 여러개는 콤마(,)로 구분 ex) 노랑,파랑", Title:="글자색 변환")
xArr = Split(word, ",")
xCount = UBound(xArr)
If Len(word) > 0 Then
For Each cell In Selection
If xCount > 0 Then
For I = 0 To xCount
startIndex = InStr(1, cell, Trim(xArr(I)), vbTextCompare)
If startIndex > 0 Then
cell.Characters(startIndex, Len(xArr(I))).Font.Color = RGB(0, 0, 255)
cell.Characters(startIndex, Len(xArr(I))).Font.Bold = True
End If
Next
Else
startIndex = InStr(1, cell, word, vbTextCompare)
If startIndex > 0 Then
cell.Characters(startIndex, Len(word)).Font.Color = RGB(0, 0, 255)
cell.Characters(startIndex, Len(word)).Font.Bold = True
End If
End If
Next cell
End If
End Sub
글자색이 RGB로 되어 있는데요 다른 색을 원하시면 RGB 값을 변경하시면 됩니다.
잘 입력되었는지 확인하기 위해 F5키를 눌러 오류가 안뜨는지 확인합니다.
열리면 [취소] 버튼을 클릭해서 창을 닫아주세요
엑셀 화면에서 색을 변경할 셀을 드래그로 지정합니다.
상단 메뉴 중 [보기]-[매크로]를 선택해주세요.
매크로 창이 열리면 WordColorInput를 선택 후 [실행] 버튼을 클릭합니다.
콤마(,)로 구분을 해서 어러 글자를 입력합니다.
예를 들면 노랑,파랑 이렇게 콤마로 구분하시면 됩니다.
이제 [확인] 버튼을 클릭합니다.
글자색이 한 번에 변경되었습니다.
엑셀 매크로 여러단어 구분값으로 입력 한번에 찾아 글자색 색변환 자동 적용하기를 알아보았습니다.