VB(A)

빨간 글자를 찾아 대괄호 입히기

당근쨈 2016. 12. 2. 21:55

http://cafe.naver.com/excelmaster/133228



빨간 글자를 찾아 대괄호를 입혀주는 매크로

빨간 글자를 찾는 사용자정의 함수를 따로 만들었다.



Option Explicit
 
Sub BigBracket()
 
    Dim i As Integer
    Dim tmp As String
    Dim RedRange As Range
    Dim SingleRange As Range
    
    '기존자료 삭제 후 데이터영역을 설정합니다.
    Columns("B").Clear
    Set RedRange = Range("A1", Cells(Rows.Count, 1).End(3))
    
    '데이터 영역을 순환하며 작업을 실행합니다.
    For Each SingleRange In RedRange
    
        With SingleRange
    
            tmp = FindRed(.Cells)
            
            '빨간 글자가 있으면 대괄호를 넣고 빨간 글자가 없으면 글자를 그대로 반환합니다.
            Select Case Len(tmp)
            
                Case Is > 0
                    i = InStr(.Value, tmp)
                    .Offset(, 1= Replace(.Value, Mid(.Value, i, Len(tmp)), "[" & tmp & "]")
                    .Offset(, 1).Characters(i + 1, Len(tmp)).Font.Color = 255
            
                Case Is = 0
                    .Offset(, 1= .Value
                
            End Select
            
        End With
        
    Next SingleRange
 
End Sub
 
Function FindRed(rnG As Range) As String
    '빨간 글자를 찾아내는 사용자정의 함수입니다.
    
    Dim i As Integer
    Dim MyRed As String
    
    For i = 1 To Len(rnG)
    
        With rnG.Characters(i, 1)
        
            If .Font.Color = 255 Then
                MyRed = MyRed & .Text
            End If
            
        End With
        
    Next i
    
    FindRed = MyRed
    
End Function
cs


통합 문서1.xlsm