動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2505(ビルド18827.20128クイック実行)
「word vba find character position」
といった検索が行われていました。
Word VBAのFindメソッドで検索を行い、見つかったときに何文字目なのかを取得するには、どのようなコードを書けばいいのかを調べていらしたのでしょうか。
Findで見つかった文字が何文字目かを取得するサンプルマクロ
「★」の入力されているWord文書がアクティブな状態で、以下のWordマクロを実行してください。
Sub 見つかった文字の先頭からの位置を取得する()
ActiveDocument.Range(0, 0).Select
With Selection.Find
.Text = "★"
If .Execute Then
MsgBox Selection.Start + 1
Else
MsgBox "見つかりませんでした"
End If
End With
End Sub
ActiveDocument.Range(0, 0).Select
With Selection.Find
.Text = "★"
If .Execute Then
MsgBox Selection.Start + 1
Else
MsgBox "見つかりませんでした"
End If
End With
End Sub
サンプルマクロで行っている処理
拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』で、Word文書の先頭から何文字目かを返すSelection.Startプロパティを解説しています。
Selection.Startプロパティはゼロオリジンですから、上記のサンプルマクロでは
MsgBox Selection.Start + 1
と、1を加算しています。
[スポンサードリンク]
Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAのFindで見つかった文字が何文字目かを取得する