#1
|
|||
|
|||
How to highlight lines containing specific words
I have a journal of several years in text format that I'd like to convert to a document, format, and create a print-on-demand book. Individual entries start with lines such as:
Friday, June 12th, 2015 I'd like to write (or preferably, find!) a macro that can search for a pair of strings (e.g, "Monday" && "2015", "Tuesday" && "2015", etc.) and bold that entire line, so it looks like this: Friday, June 12th, 2015 and maybe in a bigger font. So in short: either seven macros (for each day of the week) or better, one macro that will look for lines that match words from a pair of lists (("Monday", "Tuesday", "Wednesday", etc.) && ("2000", "2001", "2002", etc.)) and then bold and increase font size. I'm by no means an expert with RegEx, but I'm a little familiar with the concept. I'm using Word 2000, though I have 2010 if necessary. Any help? Thanks! |
#2
|
|||
|
|||
Someone may be allow with a simplified find and replace, but it is late here:
Code:
Sub ScratchMacro() 'A basic Word macro coded by Greg Maxey Dim oPar As Paragraph, oRng As Range For Each oPar In ActiveDocument.Range.Paragraphs Select Case Trim(oPar.Range.Words.First) Case "Sunday", "Monday", "Friday" Select Case True Case IsNumeric(oPar.Range.Words.Last.Previous) Set oRng = oPar.Range.Words.Last.Previous oRng.MoveStart wdCharacter, -3 If IsNumeric(oRng) Then oPar.Style = "Body Text" 'Define some style you want to apply. End If End Select End Select Next oPar lbl_Exit: Exit Sub End Sub |
#3
|
|||
|
|||
Quote:
|
#4
|
|||
|
|||
Sub FindWord_and_ChangeColor()
Dim LastRow, i As Long Selection.HomeKey Unit:=wdStory With Selection.Find .ClearFormatting .Forward = True .Wrap = wdFindContinue .Text = "put your text here" .Execute End With Do While Selection.Find.Found Selection.Expand Unit:=wdSentence Selection.Font.ColorIndex = wdGreen Selection.Collapse Direction:=wdCollapseEnd Selection.Find.Execute Loop End Sub |
#5
|
||||
|
||||
Quote:
Find = <[MTWFSondayueshrit]{3,8}, [0-9]{1,2}[nrst][dht] [JFMASONDanuryebchpilgstmov]{3,9}, [12][0-9]{3}> Replace = ^& and you apply the appropriate formatting attributes to the replacement expression. As coded, the above Find expression will find all dates in any of the • dddd, d(ordinal) mmmm, yyyy • dddd, d(ordinal) mmm, yyyy • ddd, d(ordinal) mmmm, yyyy • ddd, d(ordinal) mmm, yyyy formats. Its scope could, of course, be made more restrictive.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
Tags |
formatting, regex |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
VBA to highlight words if used too much | aolszewski | Word VBA | 3 | 11-23-2013 02:07 AM |
Highlight all underlined words | zdodson | Word VBA | 1 | 07-11-2013 04:53 PM |
Macro to highlight words | bertietheblue | Word VBA | 9 | 07-01-2013 12:39 PM |
Highlight and then replace multiple words | redhin | Word VBA | 5 | 03-05-2013 05:42 AM |
Find and highlight all words ending in -ly | RBLampert | Word VBA | 13 | 10-23-2012 04:45 PM |