
Tips.Net > WordTips Home > Formatting > Searching for Formatting > Searching for Borders
Summary: The Find and Replace feature in Word allows you to easily search for lots of different items or characteristics in your document. One of the things you cannot natively do, however, is to search for borders on paragraphs. This tip introduces two macros that make short work of finding any bordered paragraphs in your documents. (This tip works with Microsoft Word 97, Word 2000, Word 2002, and Word 2003.)
Word has a very powerful feature that allows you to search for just about anything under the sun. One thing you cannot search for is borders on paragraphs, however. For instance, if you want to find all paragraphs that had the left border turned on, you can't do it. There are a couple of ways to work around this, however.
The first workaround is to simply use styles to format your paragraphs. If you use a style, and the style calls for a left-side border on a paragraph, then you can easily search for paragraphs using that style. (Exactly how you search for styles has been covered in other issues of WordTips.)
The second possible workaround is to do your searching using a macro. Using a macro, you can easily check to see if any border attributes are set for a paragraph. The following macro steps through each of the paragraphs in a document. When it finds a paragraph that has any of the border attributes set, that paragraph is selected, and the macro stops.
Sub SearchForBorders1()
Dim k As Word.Paragraph
Dim bFound As Boolean
For Each k In ActiveDocument.Paragraphs
bFound = False
If k.Borders(wdBorderTop).LineStyle <> wdLineStyleNone _
Then bFound = True
If k.Borders(wdBorderLeft).LineStyle <> wdLineStyleNone _
Then bFound = True
If k.Borders(wdBorderBottom).LineStyle <> wdLineStyleNone _
Then bFound = True
If k.Borders(wdBorderRight).LineStyle <> wdLineStyleNone _
Then bFound = True
If bFound Then
k.Range.Select
Exit Sub
End If
Next k
End Sub
This macro can be very handy if you don't have many paragraphs with borders. Why? Because the macro always begins searching from the start of the document, and therefore will only find the first paragraph with a border set.
A different macro approach can be used to search for borders in paragraphs beyond the one in which the insertion point is located. The following macro does just that--it starts searching after the current paragraph, and stops when it reaches a paragraph that has any of its border attributes set. Note that this macro doesn't select the entire paragraph; it simply moves the insertion point to the paragraph that has a border set.
Sub SearchForBorders2()
Static a As Long, l As Long
Dim b As Boolean
Dim bd As Border
Dim bds As Borders
Dim prg As Paragraph
Dim prgs As Paragraphs
Dim re As Range
Dim se As Selection
Dim doc As Word.Document
Set se = Selection
Set re = se.Range
Set doc = ActiveDocument
If se.Start < l Then a = se.Start
With doc.Content
Set bds = .Borders
re.Start = a
re.End = .End
End With
For Each bd In bds
b = bd = True
If b Then Exit For
Next
If Not b Then Exit Sub
Set prgs = re.Paragraphs
For Each prg In prgs
Set re = prg.Range
If InStr(re.Text, Chr(13)) = 0 Then
re.End = re.End + 1
End If
Set bds = re.Borders
For Each bd In bds
b = bd = True
If b Then Exit For
Next
If b Then
a = re.Start
se.Start = re.Start
se.End = re.Start
a = re.End
l = se.Start
Exit Sub
End If
Next
a = 0
MsgBox "No more borders found"
End Sub
Tip #1705 applies to Microsoft Word versions: 97 2000 2002 2003
Create and Merge! Discover how to use Word's mail merge tool to create your own custom documents. WordTips: Mail Merge Magic includes all the information you need to make your merges more productive.
Do you want a decade of WordTips information at your fingertips? You can find what you need with the WordTips Ten-Year Library. (more information...)
Ask a Word Question
Make a Comment
Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Money Tips
Pet Tips
Word2007 Tips
WordTips