VB(A)/당근쨈 & Chronicle

[& Chronicle] 원하는 글자 추출하기

당근쨈 2017. 5. 14. 21:06


지식인 질문인데, 어떤 이유인지 '비공개' 처리가 되어있습니다.


Chronicle님의 풀이내용입니다. - http://blog.naver.com/asaph16/221003500708

LEFT, FIND, REPLACE 와 같은 비교적 대중화 된 함수로 풀이를 하였습니다.


매크로의 경우, 텍스트 추출은 정규식이 와따입니다.

패턴을 짜는 게 까다롭긴 하지만 규칙만 찾아내면 정규식만큼 편한 것도 없습니다.

텍스트 추출이 업무에서 많은 비중을 차지한다면 정규식을 공부해보세요.


Function Macro$(tmp$)
 
    Dim Reg As Object
    Dim MySet As Object
    Dim v$(), i%
    
    Set Reg = CreateObject("vbscript.regexp")
    
    With Reg
    
        .Global = True
        .Pattern = "\(?(&? ?\w{2,})\)?" '성, 연도를 가져오는 패턴
    
        If .test(tmp) Then
        
            Set MySet = .Execute(tmp)
            ReDim v(MySet.Count - 1)
            
            For i = 0 To UBound(v)
                v(i) = MySet.Item(i)
            Next i
            
            Macro = Join(v)
        
        Else
            Macro = "-"
            
        End If
        
    End With
 
End Function
 
 
cs

sample.xlsm