Please Note: This article is written for users of the following Microsoft Word versions: 2007, 2010, 2013, 2016, 2019, and Word in Microsoft 365. If you are using an earlier version (Word 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Word, click here: Finding Text Boxes.
Written by Allen Wyatt (last updated August 12, 2022)
This tip applies to Word 2007, 2010, 2013, 2016, 2019, and Word in Microsoft 365
Word has a powerful search and replace capability that lets you search for virtually anything in your document. Word even includes codes you can use to search for special items. (Click the Special button in the Find and Replace dialog to see what codes are available.) One thing you cannot search for, however, is text boxes. There is no special code that allows you to find text boxes, and you can't search for them using the Object Browser.
You can, however, use a macro to look through a document and stop when it finds a text box. The following macro stops on each text box it finds and asks the user if that is the text box wanted.
Sub SearchTextBox() Dim shp As Shape Dim sTemp As String Dim iAnswer As Integer For Each shp In ActiveDocument.Shapes If shp.Type = msoTextBox Then shp.Select Selection.ShapeRange.TextFrame.TextRange.Select sTemp = Selection.Text sTemp = Left(sTemp,20) iAnswer = MsgBox("Box contains text beginning with:" & vbCrLf _ & sTemp & vbCrLf & "Stop here?", vbYesNo, "Located Text Box") If iAnswer = vbYes Then Exit For End If Next End Sub
Note:
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (12249) applies to Microsoft Word 2007, 2010, 2013, 2016, 2019, and Word in Microsoft 365. You can find a version of this tip for the older menu interface of Word here: Finding Text Boxes.
Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!
Many people use text boxes to help organize and layout information on the page. Here's how you can add text boxes to your ...
Discover MoreInsert a text box and it is automatically formatted to have a border around it. Getting rid of the border is easy if you ...
Discover MoreText boxes allow you to "segment" information in your document and lay it out differently. You can easily resize these ...
Discover MoreFREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
2018-12-26 06:54:49
Ken Endacott
The macro finds textboxes in the order that they were inserted which is not necessarily the order that they appear in the document. To correct this:
replace the line:
For Each shp In ActiveDocument.Shapes
with:
For Each shp In ActiveDocument.Range.ShapeRange
2018-12-25 11:48:42
Phil Reinemann
It might be worth adding a variable before the For Each loop that stores the last found text box, so you can continue the search from the last one found instead of starting from the beginning of the document again.
A question to ask continue from last found or from the beginning is of course needed too.
I rarely use text boxes so I won't attempt the code, but it's just a thought.
Got a version of Word that uses the ribbon interface (Word 2007 or later)? This site is for you! If you use an earlier version of Word, visit our WordTips site focusing on the menu interface.
Visit the WordTips channel on YouTube
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2024 Sharon Parq Associates, Inc.
Comments