اسناد اغلب حاوی کلمات زیادی هستند که به طور هدفمند بسیار شبیه یکدیگر هستند. برای مثال، ممکن است سندی داشته باشید که به یک سری از شمارههای قطعه ارجاع میدهد، و شمارههای قطعه همگی بسیار شبیه به یکدیگر هستند. یا ممکن است به گروهی از نام فایل اشاره کنید که در آن قسمت پایه نام همان کلمه است، اما هر نام فایل دارای پسوندی است که یک عدد است، مانند موارد زیر:
Widget01 Widget02 Widget03 Widget04 Widget05
اگر زمانی نیاز به افزایش اعداد درون سند خود داشتید، این فرآیند می تواند بسیار خسته کننده و مستعد خطا باشد. (البته بسته به تعداد نام هایی که باید تغییر دهید.) این به این معنی است که این کار کاندیدای عالی برای انجام یک ماکرو است.
به عنوان مثال، ماکرو زیر، BumpNumbers، تمام نمونههای کلمه Widget و بلافاصله یک عدد دو رقمی را جستجو میکند. سپس عدد افزایش می یابد.
Sub BumpNumbers() Dim J As Integer Dim sFindText As String Dim sReplaceText As String Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With For J = 98 To 1 Step -1 sFindText = "Widget" & Right("00" & Trim(CStr(J)), 2) sReplaceText = "Widget" & Right("00" & Trim(CStr(J + 1)), 2) Selection.Find.Text = sFindText Selection.Find.Replacement.Text = sReplaceText Selection.Find.Execute Replace:=wdReplaceAll Next J End Sub
بدیهی است که این ماکرو برای یک نیاز خاص طراحی شده است - کلمه ویجت و یک عدد دو رقمی به دنبال آن. اگر میخواهید ماکرو را مطابق با نیازهای شمارهگذاری خود تغییر دهید، میتوانید این کار را با تغییر حلقه For... بعدی (به طوری که از 98 به 1 نمیرود) یا با تغییر متن مورد جستجو (که اختصاص داده شده است) انجام دهید. به متغیر sFindText).