Word VBA: 私の Find.Replacement コマンドは、ターゲットの最初のインスタンスのみを検索します。なんで?それ以上のインスタンスを見つけることはしません。
MY ルーチンは、指定されたスタイルを持つすべてのテキストを検索し、それを別のスタイルに置き換えることになっています。IT は最初のインスタンスのみを見つけます。
Function ExecReplaceStyle(strSourceStyle As String, strDestinationStyle As String) As Integer
On Error GoTo ErrorHandler
Dim Rng As Range
Dim ret As Integer
ExecReplaceStyle = 0
Set Rng = docActiveDoc.Range
Rng.Find.ClearFormatting
Rng.Find.Style = ActiveDocument.Styles(strSourceStyle)
Rng.Find.Replacement.ClearFormatting
Rng.Find.Replacement.Style = ActiveDocument.Styles(strDestinationStyle)
With Rng.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
'Rng.Find.Execute(Replace:=wdReplaceAll)
Rng.Select
Rng.Find.Execute Replace:=wdReplaceAll
ExecReplaceStyle = ret
Exit Function
ErrorHandler:
ExecReplaceStyle = Err.Number
ErrDescription = Err.Description
Resume Next
End Function