![]() |
|
#1
|
|||
|
|||
|
I'm trying to replace strings in italics with an italics style. This code returns an error and is incomplete:
Quote:
|
|
#2
|
|||
|
|||
|
Hi! Try this:
Code:
Sub ITALICS()
For Each myRng In ActiveDocument.StoryRanges
Do
With myRng
Do
With .Find
.MatchWildcards = False
.text = ""
.Replacement.text = ""
.Font.Italic = True
.Wrap = wdFindStop
.Execute
End With
If .Find.found Then
MsgBox myRng.text
'Replace with Style:
myRng.Style = "Italic"
Else: Exit Do
End If
myRng.Collapse 0
Loop
End With
Set myRng = myRng.NextStoryRange
Loop Until myRng Is Nothing
Next myRng
End Sub
|
|
#3
|
||||
|
||||
|
At its simplest, it is just a simple find and replace that doesn't require special loop handling of the .Found result
Code:
Sub Macro1()
Dim aRng As Range
For Each aRng In ActiveDocument.StoryRanges
With aRng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = ""
.Replacement.Text = ""
.Font.Italic = True
.Replacement.Style = ActiveDocument.Styles("Emphasis")
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
Next aRng
End Sub
Also, applying a character style to text which has multiple local font attributes (eg italic AND bold AND a different colour) will remove the 'other attributes' when the character style is applied.
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
|
#4
|
|||
|
|||
|
Hi, Vivka and Guessed! Thanks a lot to both of you! I now see all the implications of applying a character style. However, my problem now is that the two codes alter headings and footers, but I want the change only in the text and the footnotes. How should I modify the code? Thanks!
|
|
#5
|
||||
|
||||
|
Try this
Code:
Sub Macro1()
Dim aRng As Range, iType As Integer
On Error GoTo EndSub 'footnotes story may not exist in all docs
For iType = 1 To 2
Set aRng = ActiveDocument.StoryRanges(iType) 'wdMainTextStory = 1, wdFootnotesStory = 2
With aRng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = ""
.Replacement.Text = ""
.Font.Italic = True
.Replacement.Style = ActiveDocument.Styles("Emphasis")
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
Next iType
EndSub:
End Sub
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
|
#6
|
|||
|
|||
|
It's perfect. Many thanks, also for the comments!
|
|
| Tags |
| italics, italics style, replace |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| italics for another language | mga | Word | 1 | 04-16-2018 03:58 AM |
| How can I find paragraphs all in italics? | Robert2 | Word | 1 | 01-28-2014 02:54 PM |
Font style keeps changing to Italics
|
B33J | Word | 1 | 07-24-2013 01:46 PM |
| How to retain italics when pasting from PDF? | WaltR | Word | 0 | 03-01-2011 04:01 PM |
| Spellcheking, grammar and italics | Rosseiro | Word | 0 | 08-20-2010 10:07 PM |