مایک یک سند طولانی دارد که از شماره گذاری خودکار لیست Word در سرتاسر آن استفاده می کند. او به راهی برای جستجو، احتمالاً با استفاده از Find and Replace، برای موارد خاص شماره گذاری شده در این لیست ها نیاز دارد. برای مثال، ممکن است لازم باشد مورد دوم را در این فهرست جستجو کند. مایک میتواند فهرستها را به شمارهگذاری دستی تبدیل کند و جستجو را انجام دهد، اما میخواهد موارد را بدون نیاز به انجام تبدیل پیدا کند.
یکی از راههایی که میتوانید به این موضوع نزدیک شوید این است که نحوه قرار دادن سند خود را در نظر بگیرید. به عنوان مثال می توانید از سبک ها برای پاراگراف های شماره دار خود استفاده کنید. به طور خاص می توانید برای هر آیتم شماره گذاری شده از یک سبک متفاوت استفاده کنید، مانند تعریف سبک هایی به نام Item1، Item2، Item3 و غیره. پس از اعمال بر روی پاراگراف های خود، می توانید به راحتی پاراگراف ها را با استفاده از سبک های مناسب جستجو کنید.
اگر نمی خواهید مسیر سبک را طی کنید، باید از یک ماکرو برای یافتن موارد استفاده کنید. اگر به هر پاراگراف در یک سند نگاه کنید و تعیین کنید که آیا چیزی در ویژگی .ListString آن وجود دارد، می توانید این کار را انجام دهید. این شامل چیزی است که شما به دنبال آن هستید، سپس می دانید که یک آیتم لیست مورد نظر را پیدا کرده اید. در اینجا یک مثال از یک ماکرو است که این کار را انجام می دهد:
Sub FindParagraphNumber()
Dim sItemNum As String
Dim p As Paragraph
Dim sTemp As String
Dim iChk As Integer
Dim iCount As Integer
Dim bStopped As Boolean
sItemNum = InputBox("Find what item number?")
If sItemNum > "" Then
iCount = 0
bStopped = False
" Start going through each paragraph
For Each p In ActiveDocument.Paragraphs
sTemp = p.Range.ListFormat.ListString
If sTemp Like "*" & sItemNum & "*" Then
" We found a match
iCount = iCount + 1
" Show the paragraph
p.Range.Select
ActiveWindow.ScrollIntoView Selection.Range, True
" Ask if searching should stop
iChk = MsgBox("Keep looking?", vbYesNo)
If iChk = vbNo Then
bStopped = True
Exit For
End If
End If
Next p
" Put together the results message
sTemp = sItemNum & " was not found in any paragraph numbers"
If iCount > 0 Then
sTemp = sItemNum & " was found " & iCount & " time(s)"
End If
If bStopped Then
sTemp = sTemp & " before the search was stopped"
End If
sTemp = sTemp & "."
MsgBox sTemp
End If
End Sub
توجه داشته باشید که وقتی ماکرو را اجرا می کنید، شماره مورد مورد نظر از شما خواسته می شود. در مورد مایک، او «2» را بدون علامت نقل قول وارد میکند. سپس هر پاراگراف بررسی میشود، و اگر بین آنچه که مایک وارد کرده است و آنچه در ویژگی .ListString است مطابقت داشته باشد، مورد انتخاب شده و نمایش داده میشود. در آن مرحله، مایک می تواند ادامه جستجو را انتخاب کند یا جستجو را متوقف کند.