動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2511(ビルド19426.20186クイック実行)

「word vba 取り消し線 検索」
という検索が、このサイト『インストラクターのネタ帳』で行われていました。
取り消し線を検索するサンプルマクロ
取り消し線を検索してどうしたいのかが、
「word vba 取り消し線 検索」
だけではわからないので、参考になりそうな簡単なWordマクロをご紹介しておきます。
Sub 取り消し線の引かれている文を選択する()
ActiveDocument.Range(0, 0).Select
With Selection.Find
.Font.StrikeThrough = True
If .Execute Then
Selection.Sentences(1).Select
Else
MsgBox "アクティブな文書に、取り消し線は引かれていないようです。"
End If
End With
End Sub
ActiveDocument.Range(0, 0).Select
With Selection.Find
.Font.StrikeThrough = True
If .Execute Then
Selection.Sentences(1).Select
Else
MsgBox "アクティブな文書に、取り消し線は引かれていないようです。"
End If
End With
End Sub
上記のWordマクロを実行すると、アクティブな文書で取り消し線の引かれている文字列を含む最初の文が選択されます。
取り消し線を検索するサンプルマクロで行っている処理
Fontオブジェクトに用意されている「StrikeThroughプロパティの戻り値がTrueの場合」

を検索条件に設定しておいてから、
With Selection.Find .Font.StrikeThrough = True
Fine.Executeメソッドで検索を実行して、

見つかったときにRangeオブジェクトのSelectメソッドで選択を行っています。
If .Execute Then Selection.Sentences(1).Select
オブジェクト式「.Sentences(1)」で、WordのRangeオブジェクトが取得できる件については、拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』の「3-8. Sentences経由でRangeを取得する」で解説しているとおりです。
Fine.Executeメソッドの戻り値がFalseだったときには、取り消し線が見つからなかった旨のメッセージを表示しています。
Else MsgBox "アクティブな文書に、取り消し線は引かれていないようです。"
[スポンサードリンク]
- Older:YYM4で静止画像を動画内で移動するように
Home » ワードマクロ・Word VBAの使い方 » Word.Findオブジェクト » Word VBAで取り消し線を検索する

『インストラクターのネタ帳』では、2003年10月からMicrosoft Officeの使い方などを紹介し続けています。










