Beginner question

J

Jim Szatkowski

I'm using Word 2003 on a Vista Business box. I've tried to duplicate a
macro shown in VBA for Dummies 4th Edition to remove highlighting of text.
I'm searching for yellow highlighting and want to simply remove it. Where
have I gone wrong - I keep getting a 91 error regarding the line "With
DoSearch" at top of repeated code section.

Macro follows:===================================================
Public Sub RemoveHighlight()
'
' RemoveHighlight Macro

Dim CurrPane As Pane
' ActiveDocument.ActiveWindow.View = wdNormalView

CurrPane.Selection.GoTo wdGoToLine, wdGoToFirst
Dim DoSearch As Find
Set DoSearch = CurrPane.Selection.Find
With DoSearch
.ClearFormatting
.Highlight = True
.MatchCase = False
While DoSearch.Execute()
With CurrPane.Selection.FormattedText
If .HighlightColorIndex = wdYellow Then
.HighlightColorIndex = wdNoHighlight
End If
End With
Wend
CurrPane.Selection.GoTo wdGoToLine, wdGoToFirst
End With
End Sub


=======================================
Thanks!
Jim
James L Szatkowski, PE, NSPE
(e-mail address removed)
http://www.jlsce.com
 
J

Jay Freedman

The error occurs on the CurrPane.Selection.GoTo, not on the With DoSearch. The
error's text is "Object variable or With block variable not set", and what it's
trying to tell you is that you declared the variable CurrPane but you never
assigned a value to it. Since that object variable doesn't have a value, you
can't use any of its members.

To verify this, run the macro by putting the cursor in the code in the VBA
editor and executing one statement at a time by pressing F8. Notice which
statement is highlighted when the error occurs.

You can make the macro work by inserting this line in place of the commented-out
ActiveDocument.ActiveWindow statement:

Set CurrPane = ActiveWindow.ActivePane

As you learn more VBA, you'll learn that it's better to use a Range object
instead of the Selection object in applications like this... but that's another
subject. :)

--
Regards,
Jay Freedman
Microsoft Word MVP
Email cannot be acknowledged; please post all follow-ups to the newsgroup so all
may benefit.
 
J

Jean-Guy Marcil

Jim Szatkowski said:
I'm using Word 2003 on a Vista Business box. I've tried to duplicate a
macro shown in VBA for Dummies 4th Edition to remove highlighting of text.
I'm searching for yellow highlighting and want to simply remove it. Where
have I gone wrong - I keep getting a 91 error regarding the line "With
DoSearch" at top of repeated code section.

I hope Jay has answered your query...

Meanwhile... I was curious about something. Was the code you posted lifted
directly from the book? I would be curious to see the original code in the
book...
 
J

Jim Szatkowski

Worked! Thanks!!
Jim
Jay Freedman said:
The error occurs on the CurrPane.Selection.GoTo, not on the With DoSearch.
The
error's text is "Object variable or With block variable not set", and what
it's
trying to tell you is that you declared the variable CurrPane but you
never
assigned a value to it. Since that object variable doesn't have a value,
you
can't use any of its members.

To verify this, run the macro by putting the cursor in the code in the VBA
editor and executing one statement at a time by pressing F8. Notice which
statement is highlighted when the error occurs.

You can make the macro work by inserting this line in place of the
commented-out
ActiveDocument.ActiveWindow statement:

Set CurrPane = ActiveWindow.ActivePane

As you learn more VBA, you'll learn that it's better to use a Range object
instead of the Selection object in applications like this... but that's
another
subject. :)

--
Regards,
Jay Freedman
Microsoft Word MVP
Email cannot be acknowledged; please post all follow-ups to the newsgroup
so all
may benefit.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top