مارک به دنبال سریعترین و کارآمدترین راه - در یک ماکرو - برای تعیین تعداد دفعاتی است که یک رشته متن خاص در یک سند رخ می دهد. متأسفانه هیچ راهی برای انجام این کار با یک یا دو دستور ساده وجود ندارد. در عوض، باید با استفاده از قابلیت Find and Replace در Word، یک سند را "گام بردارید".
ابتدا یک کپی موقت از سند خود تهیه کنید تا خطر به هم ریختن سند اصلی خود را نداشته باشید. سپس از یک متغیر در ماکرو خود برای شمارش تعداد دفعاتی که متن مورد نظر جایگزین می شود استفاده کنید و هر بار متغیر را افزایش دهید. در مثال زیر، تعداد دفعات به متغیر Replacements ختم می شود، سپس می توانید از مقدار استفاده کنید یا مقدار را به رشته ای برای نمایش آن تبدیل کنید.
Sub CountReplacements
Dim Replacements As Integer
Replacements = 0
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = InputBox("Enter the text you want to find:")
.Replacement.Text = InputBox("Enter the replacement text:")
.Forward = True
.Wrap = wdFindContinue
.Format = False
.Execute Replace:=wdReplaceOne
Do Until Not .Found
.Execute Replace:=wdReplaceOne
Replacements = Replacements + 1
Selection.MoveRight Unit:=wdCharacter, Count:=1
Loop
If Replacements <> 0 Then
MsgBox _
"" & .Text & " has been replaced " & _
CStr(Replacements) & " times with " & _
.Replacement.Text
Else
MsgBox .Text & " was not found in the document/selection."
End If
End With
End Sub