![]() |
|
#1
|
|||
|
|||
|
Hello. I was able to "write" some VBA code to change the font (highlighting) of certain words. I say that lightly...I stole it from a recorded macro, and then enhanced it based on some examples I found on the web.
![]() Now what I need to do is when I find the text string, back up 2 lines, and insert a page break. Would also like to check for the existence of a page break before inserting a new one. A novice at VBA, but not programming in general. Any help would be greatly appreciated. Thank you, ExpatChic |
|
#2
|
||||
|
||||
|
Hi ExpatChic,
It would be helpful ig you could post the code you're using, plus some clarification of what you mean by "back up 2 lines". Are these 2 lines part of the same paragraph, or separate paragraphs? PS: I split your post off into a new thread, as it seems unrelated to the one you attached it to.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
#3
|
|||
|
|||
|
Here you go:
Code:
Dim vFindText, vReplText As String
Dim vColor As String
Dim x As Integer
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
For x = 1 To 3
Select Case x
Case Is = 1
vFindText = "Cat I"
vColor = wdRed
Case Is = 2
vFindText = "Cat II"
vColor = wdYellow
Case Is = 3
vFindText = "Cat III"
vColor = wdPink
End Select
vReplText = vFindText
With Selection.Find
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Format = True
.MatchCase = False
.Text = vFindText
.Replacement.Text = vReplText
.Replacement.Highlight = True
.Execute Replace:=wdReplaceAll
.Font.Color = vColor
End With
Next x
blah blah blah blah blah blah blah blah one or more blank lines Heading Cat I (or II or III) blah blah blah This scenario repeats throughout a 600+ page document. I would like to insert a page break before each Heading...I.e. go back 2 lines. But, I would also like to check for the existence of a page break before adding another one. I tried various forms of Do...Loop, but I got myself into an endless loop. :-) Thank you for your help. Last edited by macropod; 08-08-2012 at 04:45 AM. Reason: Added code tags & formatting |
|
#4
|
||||
|
||||
|
Hi ExpatChic,
If you want a page break before all Heading1 paragraphs, simply change the Heading1 Style to include the 'page break before' attribute. No code required.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
#5
|
|||
|
|||
|
ok, but it's not really a HEADING in the Word sense of the word (no pun); it's simply words that denote the start of a new Cat I/II/III "section". (Not a word section either; just more words).
blah blah blah blah blah blah New Category Cat I/II/III blah blah blah blah blah blah New Category Cat I/II/III blah blah blah blah blah blah But regardless of that, how would you set up code to do this? I'm trying to learn VBA, too! ![]() Thanks again. |
|
#6
|
||||
|
||||
|
Hi ExpatChic,
Try the following. I had to make some changes to your code, as it wasn't working. Code:
Sub Demo()
Application.ScreenUpdating = False
Dim vFindText As String, vColor As String, x As Long
With ActiveDocument.Range.Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = True
'Insert Page breaks before the paragraphs preceding the 'Cat #' paragraphs
.Text = "[!^13]{1,}^13Cat I"
.Replacement.Text = "^m^&"
.Execute Replace:=wdReplaceAll
'Delete any duplicate page breaks
.Text = "[^m]{2,}"
.Replacement.Text = "^m"
.Execute Replace:=wdReplaceAll
'Highlight the 'Cat #' paragraphs
.Replacement.Text = "^&"
.Replacement.Highlight = True
For x = 1 To 3
Select Case x
Case Is = 1
vFindText = "Cat I^13"
vColor = wdRed
Case Is = 2
vFindText = "Cat II^13"
vColor = wdYellow
Case Is = 3
vFindText = "Cat III^13"
vColor = wdPink
End Select
Options.DefaultHighlightColorIndex = vColor
.Text = vFindText
.Execute Replace:=wdReplaceAll
Next x
Options.DefaultHighlightColorIndex = wdNoHighlight
End With
Application.ScreenUpdating = True
End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
Delete a page after Section Break Next Page
|
Aston | Word | 9 | 04-27-2022 07:38 AM |
Page break formatting changes
|
Tom0822 | Excel | 1 | 03-19-2012 08:50 PM |
| Force a page break | Emaleth9999 | Mail Merge | 1 | 02-09-2012 02:36 AM |
| paragaph hard break, soft break and ...strange break | czomberzdaniela | Word | 2 | 12-03-2010 06:58 PM |
| Page Break | Manolo | Word | 0 | 04-29-2009 11:04 PM |