Predefinição:Taxonomia/Genasauria
Sub HighlightAllKeywords()
' 매크로 실행되는 엑셀 파일의 경로 Dim basePath As String basePath = ThisWorkbook.Path
' 설정 파일 열기 Dim settingWorkbook As Workbook Dim settingWorksheet As Worksheet Dim keywordsRange As Range Dim keywords() As Variant Dim lastRow As Long Dim i As Integer
' setting.xlsx 파일을 매크로와 동일한 경로에서 찾기
Set settingWorkbook = Workbooks.Open(basePath & "\Setting.xlsx")
Set settingWorksheet = settingWorkbook.Sheets("Setting")
' 키워드 범위 정의 (F2부터 마지막까지)
lastRow = settingWorksheet.Cells(settingWorksheet.Rows.Count, "F").End(xlUp).Row
Set keywordsRange = settingWorksheet.Range("F2:F" & lastRow)
' 키워드를 배열로 변환
ReDim keywords(1 To keywordsRange.Rows.Count)
For i = 1 To keywordsRange.Rows.Count
keywords(i) = keywordsRange.Cells(i, 1).Value
Next i
' 설정 파일 닫기 settingWorkbook.Close False
' 대상 워크시트 선택 (예: Sheet1)
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' J열 범위 내 모든 셀 선택 (J2부터 마지막 행까지)
lastRow = ws.Cells(ws.Rows.Count, "J").End(xlUp).Row
Dim rangeToSearch As Range
Set rangeToSearch = ws.Range("J2:J" & lastRow)
' 강조할 셀 및 키워드 반복 Dim cell As Range Dim keyword As Variant Dim startPos As Long Dim length As Long Dim searchPos As Long
' 각 키워드에 대해 H열의 모든 셀을 순회하며 강조
For Each cell In rangeToSearch
If Not IsEmpty(cell.Value) Then
For Each keyword In keywords
startPos = 1
searchPos = InStr(startPos, cell.Value, keyword, vbTextCompare)
' 키워드가 발견될 때마다 강조
Do While searchPos > 0
length = Len(keyword)
' 키워드 부분만 굵게 설정 및 텍스트 색 변경
With cell.Characters(Start:=searchPos, length:=length).Font
.Bold = True
.Color = RGB(0, 0, 255) ' 파란색 텍스트
End With
' 다음 인스턴스를 찾기 위해 검색 위치를 업데이트
startPos = searchPos + length
searchPos = InStr(startPos, cell.Value, keyword, vbTextCompare)
Loop
Next keyword
End If
Next cell
End Sub