![]() |
#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 | Thread Starter | Forum | Replies | Last Post |
![]() |
Cendrinne | Word VBA | 12 | 11-08-2020 11:05 PM |
![]() |
dmarie123 | Word VBA | 10 | 07-20-2015 12:16 AM |
![]() |
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 |
![]() |
14spar15 | Word | 1 | 11-13-2011 11:17 PM |