![]() |
|
#1
|
|||
|
|||
|
How to programmatically (VBA) highlight in yellow any occurrence of " " (two blank spaces) in a document?
The code must select the character before and after, for the highlight to work, like "? ?". Thanks! |
|
#2
|
|||
|
|||
|
Code:
Sub ScratchMacroI()
'A basic Word macro coded by Greg Maxey
Dim oRng As Range
Set oRng = ActiveDocument.Range
With oRng.Find
.Text = " "
.MatchWildcards = True
While .Execute
oRng.InsertBefore "~"
oRng.InsertAfter "~"
oRng.HighlightColorIndex = wdYellow
oRng.Collapse wdCollapseEnd
Wend
End With
lbl_Exit:
Exit Sub
End Sub
Sub ScratchMacroII()
'A basic Word macro coded by Greg Maxey
Dim oRng As Range
Set oRng = ActiveDocument.Range
With oRng.Find
.Text = " "
.MatchWildcards = True
While .Execute
oRng.MoveStart wdCharacter, -1
oRng.MoveEnd wdCharacter, 1
oRng.HighlightColorIndex = wdYellow
oRng.Collapse wdCollapseEnd
Wend
End With
lbl_Exit:
Exit Sub
End Sub
|
|
#3
|
|||
|
|||
|
Works fine! Thanks!
|
|
#4
|
|||
|
|||
|
Is there a single sub that will do this for a list of words? Based on your code.
This code I was editing is not working: Code:
Set oDoc = ActiveDocument
aFind = Array(". ,", "house")
Set oRng = oDoc.range
For x = 0 To UBound(aFind)
With oRng.Find
.Text = aFind(x)
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True: oRng.HighlightColorIndex = wdYellow: Loop
End With
Next x
|
|
#5
|
|||
|
|||
|
If you are going to pass drive-by questions at least show some effort to post structured code and declare your variables.
Code:
Option Explicit
Sub ScratchMacro()
'A basic Word macro coded by Greg Maxey
Dim lngIndex As Long
Dim oDoc As Document
Dim oRng As Range
Dim arrFind
Set oDoc = ActiveDocument
arrFind = Array(". ,", "house")
For lngIndex = 0 To UBound(arrFind)
Set oRng = oDoc.Range
With oRng.Find
.Text = arrFind(lngIndex)
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True: oRng.HighlightColorIndex = wdYellow: Loop
End With
Next lngIndex
lbl_Exit:
Exit Sub
End Sub
|
|
#6
|
|||
|
|||
|
Sorry! The code is inside another sub, so I forgot to copy the variable declaration part.
Works fine! Thank you! |
|
#7
|
|||
|
|||
|
Hi gmaxey,
How to highlight the first character of a paragraph that starts with lowercase letters? The search mask should look something like "^ p [a-z]" Thanks. |
|
#8
|
|||
|
|||
|
Hi, this thread is solved. Last question is not need anymore.
|
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| highlight bar | freeriding | Project | 0 | 12-07-2018 05:25 AM |
Deleting all but one occurrence of text from a selection
|
paik1002 | Word VBA | 3 | 12-15-2015 05:17 PM |
VBA to highlight words if used too much
|
aolszewski | Word VBA | 3 | 11-23-2013 02:07 AM |
Mysterious bottom row occurrence
|
Ulodesk | Word Tables | 2 | 05-26-2013 02:44 PM |
| find - reading highlight - highlight all / highlight doesn't stick when saved | bobk544 | Word | 3 | 04-15-2009 03:31 PM |