rand(life)

[엑셀-VBA] 문자열 단위로 비교하여 색글 표시 본문

컴퓨터/엑셀

[엑셀-VBA] 문자열 단위로 비교하여 색글 표시

flogsta 2010. 4. 26. 05:28
원래 VBA는 어려워서 다루지 않으려고 했는데, 어느 분께서 이런 질문을 하신게 계기가 되어 VBA를 공부하고 있습니다. ^^

내가 어떤 문장을 쓰면, 그 문장 중에서 해당 철자가 들어가 있는지 확인할 수 있도록 문장에 들어있는 각 글자마다 색을 입힐 수 있을까?


약간 생각해보니, 함수를 사용하면 힘들겠지만, VBA를 사용하면 될 것 같았습니다. 하지만 VBA까지 다룰 여유가 없었기에 차일피일 미루다가 잠이 안 오는 오늘밤, 문득 생각이 나서 만들어 보았습니다.


지금처럼, A열에 해당 철자들을 늘어놓고 C2셀에 문장을 쓴 다음 "확인"키를 클릭하면

지금처럼 A열에 있는 철자에 색깔이 표시되는 것입니다.
코드는 다음과 같습니다.


Sub strfin()

Dim i, k As Integer

    Selection.Copy
    ActiveCell.Offset(0, 1).Select
    ActiveSheet.Paste
   
For k = 1 To Len(ActiveCell)

    For Each i In Range("a2").CurrentRegion
           
        If i.Value Like Mid(ActiveCell.Text, k, 1) Then
                  ActiveCell.Characters(Start:=k, Length:=1).Font.Color = -16776961
         
        End If
    Next i
Next k
 
   ActiveCell.Offset(1, -1).Select

End Sub