「powerpoint vba find引数」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。
PowerPointの、TextRangeオブジェクトのFindメソッドの引数について調べている方による検索です。
TextRange.Findメソッドを使ったサンプルマクロ
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
何文字目に、定数・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 を少しずつ変更して実行すると、それぞれの意味が理解できるでしょう。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » TextRange.Findの引数を確認するPowerPointマクロ