#1
|
|||
|
|||
VBA macro to replace strings in italics with italics style
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 |