선택 범위 내에서 대체할 PowerPoint 매크로

2193 단어 VBA파워 포인트

하고 싶은 일



PowerPoint에서 전체 텍스트가 아닌 선택 범위 내에서 텍스트를 검색하고 검색 결과를 지정된 텍스트로 바꾸고 싶습니다.

매크로를 만드는 방법



우선은 아래와 같은 유저 폼을 만든다.



사용자 양식에 다음과 같은 코드를 포함합니다.

UserForm1.frm
Option Explicit

Private MyRng As TextRange
Private Found As TextRange

'「置換」ボタンを押したとき
Private Sub btnRep_Click()

    On Error GoTo ErrMessage

    Set MyRng = ActiveWindow.Selection.TextRange
    Set Found = MyRng.Replace(SearchText.text, RepText.text)
    Found.Select

    Exit Sub

ErrMessage:
    MsgBox "検索を行う範囲を選択してください"

End Sub

'「次を置換」ボタンを押したとき
Private Sub btnRepNext_Click()

    On Error GoTo ErrMessage

    With Found
        Set Found = MyRng.Replace(SearchText.text, RepText.text, .Start + .length - 1)
        If Not (Found Is Nothing) Then
            Found.Select
        Else
            MsgBox "見つかりません"
        End If
    End With

    Exit Sub

ErrMessage:
    MsgBox "検索を行う範囲を選択してください"

End Sub

'「すべて置換」ボタンを押したとき
Private Sub btnRepAll_Click()

    On Error GoTo ErrMessage

    Set MyRng = ActiveWindow.Selection.TextRange
    Set Found = MyRng.Replace(SearchText.text, RepText.text)
    Do While Not (Found Is Nothing)
        With Found
            Set Found = MyRng.Replace(SearchText.text, RepText.text, .Start + .length - 1)
        End With
    Loop

    Set MyRng = Nothing
    Set Found = Nothing

    Exit Sub

ErrMessage:
    MsgBox "検索を行う範囲を選択してください"

End Sub

표준 모듈에서 호출할 수 있도록 한다.

Module1.bas

Option Explicit

Public Sub Sample()

    UserForm1.Show vbModeless

End Sub


이제 선택 범위에서 지정된 텍스트를 바꿀 수 있습니다.

사용법


  • 우선, 치환하고 싶은 범위를 선택한다.
  • 하나씩 바꿀 때는 먼저 '바꾸기'버튼으로 바꾸고 2번째 이후에는 '다음 바꾸기'버튼을 누릅니다.
  • 모두 바꾸려면 모두 바꾸기 버튼을 누릅니다.

  • 참고


  • TextRange.Find 메서드 (PowerPoint)
  • 좋은 웹페이지 즐겨찾기