특정 단어 찾아서 색칠하기
- 만조
- 26
- 0
Function findx(searchWord As String, targetCell As Range) As String
Dim cellText As String
Dim startPos As Integer
Dim endPos As Integer
' 대상 셀의 텍스트 가져오기
cellText = targetCell.Value
' 찾을 단어가 셀 텍스트에 포함되어 있는지 확인
startPos = InStr(1, cellText, searchWord, vbTextCompare)
If startPos > 0 Then
Do
' 찾은 단어를 빨간색으로 표시
targetCell.Characters(startPos, Len(searchWord)).Font.Color = RGB(255, 0, 0)
' 찾은 단어의 전후로 다른 부분은 검정색으로 표시
If startPos > 1 Then
targetCell.Characters(1, startPos - 1).Font.Color = RGB(0, 0, 0)
End If
endPos = startPos + Len(searchWord)
If endPos <= Len(cellText) Then
targetCell.Characters(endPos, Len(cellText) - endPos + 1).Font.Color = RGB(0, 0, 0)
End If
' 찾은 다음 위치 찾기
startPos = InStr(startPos + 1, cellText, searchWord, vbTextCompare)
Loop While startPos > 0
' 함수의 반환 값에도 찾을 단어를 빨간색으로 표시
findx = targetCell.Text
Else
' 찾는 단어가 없을 경우 "없음"으로 반환
findx = "없음"
End If
End Function