Ctrl+F 검색을 좀 더 보완한 검색방법입니다. 

Search 와 SearchAgain 매크로

파워포인트에서 정규식 외에 Like 를 이용해서  아무 문자를 나타내는 * 나 ? 를 이용해서 비슷한 문자열을 검색하는 방법입니다.

 

예를 들어 "수*" 를 검색하면 '수박, 수수깡, 수건' 등이 검색됩니다. "수?"를 검색하면 '수박, 수건' 만 검색됩니다.

 

실행 영상:

코드:

더보기
Sub SearchAgain()
    Dim sld As Slide, sldnow As Slide
    Dim shp As Shape, shpnow As Shape
    Dim tr As TextRange
    Dim found As Boolean
    Dim ZO As Long
    Dim str As String
    
    'str = "1*"
    If Len(strSearch) = 0 Then
        str = InputBox("찾을 문자열을 입력하세요.", "찾기")
        If Len(str) = 0 Then Exit Sub
        strSearch = str
    Else
        str = strSearch
    End If
    
    On Error Resume Next
    Set sldnow = ActiveWindow.View.Slide
    Set shpnow = ActiveWindow.Selection.ShapeRange(1)
    If Not shpnow Is Nothing Then ZO = shpnow.ZOrderPosition
    Debug.Print "ZO", ZO
    On Error GoTo 0
    
    For Each sld In ActivePresentation.Slides
        If sld.SlideIndex >= sldnow.SlideIndex Then
            If sld.SlideIndex > sldnow.SlideIndex Then ZO = 0
            For Each shp In sld.Shapes
                If ZO = 0 Or (ZO > 0 And shp.ZOrderPosition > ZO) Then
                    If shp.HasTextFrame Then
                        If shp.TextFrame.HasText Then
                            
                            If shp.TextFrame.TextRange Like str Then
                                Debug.Print "#" & sld.SlideIndex, shp.Name
                                ActiveWindow.View.GotoSlide sld.SlideIndex
                                shp.Select
                                found = True
                                Exit For
                            End If
                            
                        End If
                    End If
                End If
            Next shp
            If found Then Exit For
        End If
    Next sld
    
    
End Sub

Sub Search()

    strSearch = ""
    SearchAgain
    
End Sub

 

빠른 실행에 아래 Search 와 SearchAgain을 추가하고 Alt+숫자키를 이용해서 검색과 재검색을 할 수 있습니다.

 

 

그밖에 파워포인트에서도 VBA에서 정규식을 이용할 수도 있습니다.

 

 

Sample20.pptm
0.05MB