![]() |
|
#1
|
|||
|
|||
|
Hello! I have bulleted text that I run many macros on and they change the words different colors depending on what they find. What I am trying to do now with a macro is what I am doing manually: look for every line that is just wdAutomatic black. No other colors. If it's just black, that line of text requires more work so that one of the other macros will catch it. Here is the code I started, but it's missing the "loop through all the lines on the page" part. <code> Sub JustBlack() ' ' JustBlack Macro: If the line only has black text and no other colors, then highlight that line yellow. ' Selection.Find.Execute Selection.Find.ClearFormatting Selection.Find.Font.Color = wdColorAutomatic With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Range.HighlightColorIndex = wdYellow End Sub </code> I appreciate your help!!
|
|
#2
|
||||
|
||||
|
There are no 'lines' in a Word document. The following will highlight text formatted as wdColorAutomatic
Code:
With Selection.Find
.ClearFormatting
.Font.Color = wdColorAutomatic
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute
Selection.Range.HighlightColorIndex = wdYellow
Loop
End With
Code:
Dim oRng As Range
Dim oPara As Paragraph
For Each oPara In ActiveDocument.Paragraphs
If oPara.Range.Font.ColorIndex = wdAuto Then
oPara.Range.HighlightColorIndex = wdYellow
End If
Next oPara
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
#3
|
||||
|
||||
|
If you're working with lines within a paragraph and no manual line-breaks, the code in:
https://www.msofficeforums.com/word-...-document.html shows how you can process a document line-by-line.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
#4
|
|||
|
|||
|
Quote:
|
|
#5
|
|||
|
|||
|
Graham has provide a solution that works for you. However, to your stated requirement "bulleted" text, the following minor modification will limit processing only to those type paragraphs:
Code:
Sub ScratchMacro()
'A basic Word Macro modified by Gregory K. Maxey
Dim oRng As Range
Dim oPara As Paragraph
For Each oPara In ActiveDocument.Paragraphs
If oPara.Range.ListFormat.ListType = wdListBullet Then
If oPara.Range.Font.ColorIndex = wdAuto Then
oPara.Range.HighlightColorIndex = wdYellow
End If
End If
Next oPara
lbl_Exit:
Exit Sub
End Sub
|
|
#6
|
|||
|
|||
|
Thanks, Greg! I appreciate your help!
|
|
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
Help to Highlight a cell that has less than 5 characters
|
Cendrinne | Word VBA | 12 | 11-08-2020 11:05 PM |
Extract Line of Text w/ specific characters up to the paragraph character, send to Excel
|
dmarie123 | Word VBA | 10 | 07-20-2015 12:16 AM |
Highlight only the characters ER when it occurs in SEVERE.
|
norgro | Word VBA | 3 | 02-18-2013 05:14 PM |
| How to import a text file but skip the first line regardless of characters? | omahadivision | Excel Programming | 7 | 02-01-2013 08:30 PM |
Highlight the first X number of characters
|
14spar15 | Word | 1 | 11-13-2011 11:17 PM |