Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » TextRange.Findの引数を確認するPowerPointマクロ

TextRange.Findの引数を確認するPowerPointマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013, Windows版PowerPoint2016

「powerpoint vba find引数」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。

PowerPointの、TextRangeオブジェクトのFindメソッドの引数について調べている方による検索です。

[スポンサードリンク]

TextRange.Findメソッドを使ったサンプルマクロ

TextRange.Findメソッドの引数を確認するためのサンプルマクロをご紹介しておきます。

Sub TextRangeオブジェクトのFindメソッドの引数を確認する()

 Const FND_TXT = "cut"

 Dim shp As Shape
 Dim trg As TextRange

 For Each shp In ActiveWindow.Selection.SlideRange.Shapes
 With shp.TextFrame

  If .HasText Then

   Set trg = .TextRange.Find( _
     FindWhat:=FND_TXT, _
     After:=1, _
     MatchCase:=msoFalse, _
     WholeWords:=msoFalse)

   If trg Is Nothing Then
    MsgBox "みつかりませんでした。"
   Else
    MsgBox trg.Start
   End If

  End If

 End With
 Next shp

End Sub

何文字目に、定数・FND_TXTに指定された「cut」という文字列があるかをメッセージボックスに表示するマクロです。

例えば、アクティブなスライド上のいずれかのShapeに、
  Cut cutting
と入力して上記のマクロを実行した場合は、5文字目からはじまる「cutting」の「cut」を見つけて「5」がメッセージボックスに表示されます。

次に、Shape内の「Cut cutting」という文字列を残したまま、定数・FND_TXTの文字列を「cat」にして実行した場合は「みつかりませんでした。」というメッセージが表示されます。(TextRange.Findはみつからなかったときに、Nothingを返します。)

TextRange.Findメソッドの引数

引数・FindWhatが検索する文字列です。

引数・Afterはちょっとまぎらわしいのですが、指定された値より後ろで検索を開始します。上記のマクロのように、「1」を指定した場合は、1文字目より後ろ(すなわち2文字目以降)で検索を行います。

引数・MatchCaseは、大文字と小文字を区別して検索するかどうかを指定します。上記のマクロのようにmsoFalseを指定した場合は大文字・小文字を区別せず、msoTrueを指定すると大文字・小文字を区別して検索します。

引数・WholeWordsは、単語全体に一致した場合を検索したいときにmsoTrueを指定します。

引数・Afte, MatchCase, WholeWords を少しずつ変更して実行すると、それぞれの意味が理解できるでしょう。

関連語句
Visual Basic for Applications
[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » TextRange.Findの引数を確認するPowerPointマクロ

「TextFrame・TextRange」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.