vba [vba] 찾는 글자에 색상을 주는 FIND VBA
페이지 정보
본문
하단에 첨부한 vba 코드를 이용하여 찾는 글자에 색상을 주는 FIND VBA
아래 사진처럼 찿는 텍스트가 색상이 변경된걸 확인 할 수 있습니다.
Sub program1472_com()
Dim C As Range, strAddr As String, S As Integer
Dim V As Variant, i As Integer
Application.ScreenUpdating = False '// 화면의 변화를 업데이트 하지 않음
With ActiveSheet.UsedRange '// 사용자 영역 중에서
.Font.Bold = False '// 폰트 굵기를 없앰
.Font.ColorIndex = xlAutomatic '// 폰트 색상을 초기화
V = Split(InputBox("검색할 문자를 ,로 분리하여 입력(최대 3개)"), ",") '// 입력받은 텍스트를 ","로 분리
If UBound(V) > 2 Then MsgBox "최대 3개의 단어만 지원합니다.": End '// 배열의 갯수가 3개가 넘어가면 종료
For i = 0 To UBound(V) '// 배열의 갯수만큼 순환하면서
Set C = .Find(what:=V(i), lookat:=xlPart) '// 포함하는 문자를 사용자 영역에서 찿음
If Not C Is Nothing Then '// 찿는 문자가 있으면
strAddr = C.Address '// 첫번째 셀 주소를 기억
Do '// Find문의 무한루프 시작
S = 1 '// 찿을 문자의 스타트 번호
Do '// Font변경의 무한루프 시작
With C.Characters(Start:=InStr(S, C, V(i)), Length:=Len(V(i))).Font '// 찿은 문자의 대하여
'.Bold = True '// 굵은 글씨로 표시하고 싶으면
.Color = Choose(i + 1, vbBlue, vbRed, vbGreen) '// 글자색 표시,1번째 vbBlue(청색), 2번째 vbRed(빨간색), 3번째 vbGreen(녹색)
End With
S = S + InStr(S, C, V(i)) '// 다음 찿을 문자의 시작번호 재설정
Loop While InStr(S, C, V(i)) '// 찿는 문자가 더이상 없으면 루프 빠져나감
Set C = .FindNext(C) '// 다음 찾은 데이터를 변수에
Loop While Not C Is Nothing And strAddr <> C.Address '// 시작 셀주소가 아니거나 더이상 찿는 셀이 없으면 루프 빠져나감
End If
Next '// 다음 문자 진행
End With
End Sub
- 이전글[vb6.0/vba] WinHttp 쿠키값 유지 및 갱신 19.09.28
- 다음글[vba] 파일을 열지않고 값 가져오기(트릭) 19.08.17
댓글목록
등록된 댓글이 없습니다.