LoginSignup
1
2

More than 5 years have passed since last update.

選択範囲内から検索するPowerPointマクロ

Last updated at Posted at 2015-05-24

やりたいこと

PowerPointで、全文でなく選択範囲内からテキスト検索したい。

マクロの作り方

まずは下記のようなユーザーフォームを作る。
UForm.PNG

ユーザーフォームに下記のようなコードを埋め込む。
「検索」ボタンと「次へ」ボタンは、それぞれ「btnSearch」、「btnNext」を割り当てる。

UserForm1.frm
Option Explicit

Private MyRng As TextRange
Private Found As TextRange

'「検索」ボタンを押したとき
Private Sub btnSearch_Click()

    On Error GoTo ErrMessage

    Set MyRng = ActiveWindow.Selection.TextRange
    Set Found = MyRng.Find(TextBox1.text) 'テキストボックスに記入したテキストを検索する
    Found.Select

    Exit Sub

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

End Sub

'「次へ」ボタンを押したとき
Private Sub btnNext_Click()

    On Error GoTo ErrMessage

    With Found
        Set Found = MyRng.Find(TextBox1.text, .Start + .length - 1) '次のテキストを検索
        If Not (Found Is Nothing) Then
            Found.Select
        Else
            MsgBox "見つかりません"
        End If
    End With

    Exit Sub

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

End Sub

標準モジュールから呼び出せるようにする。

Module1.bas

Option Explicit

Public Sub Sample()

    UserForm1.Show vbModeless

End Sub

これで、選択範囲からの検索ができるようになる。

課題

テキストを選択しているときは正常に動作するが、オートシェイプを選択しているときはうまく動作しないようです。様々な選択範囲に対してこのマクロを動作させるには、エラー処理を作りこむ必要がありそうです。

参考

  1. TextRange.Find メソッド (PowerPoint)
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2