Curly quotes to French Quotes

G

Guest

How can I replace all curly quotes with French (dagger or duck's feet) quotes?
When I use the unicode characters (eg 00AB) in "Replace," it simply
replaces the curly quotes with curly quotes again. I can enter the French
quotes manually, but this is laborious.
 
D

Daiya Mitchell

You know, I thought that if the text were tagged as French, then both a
replace operation and a Format | AutoFormat would switch to the correct
quotation marks, assuming the AutoFormat options were set up right. But
this is not working on my machine either, although if I type new marks, it
does. Perhaps someone else will know.

The semi-manual alternative--two Find and Replaces.

#1) Find opening quotation ³, typed via alt-[. Replace with opening French
quotation mark, copied into Replace box using control-C or typed via alt-\.

#2) Find closing quotation ², typed via alt-shift-[ . Replace with closing
French quotation mark, copied into Replace box using control-C or typed via
alt-shift-\.

This should not be so laborious.

I always recommend making a COPY before doing a Replace All.
 
G

Graham Mayor

Setting the language to French and running autoformat with the smart quote
option works for me. However, it won't work if the quotes are already
converted from straight quotes to smart quotes in another language. If that
was the case you would have to replace them with plain quotes first. The
following macro will do that for English smart quotes:

Sub ReplaceList()
Dim vFindText As Variant
Dim vReplText As Variant
Dim i As Long
vFindText = Array(Chr(145), Chr(146), Chr(147), Chr(148))
vReplText = Array(Chr(39), Chr(39), Chr(34), Chr(34))
With Selection.Find
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Format = True
.MatchCase = True
For i = LBound(vFindText) To UBound(vFindText)
.Text = vFindText(i)
.Replacement.Text = vReplText(i)
.Execute replace:=wdReplaceAll
Next i
End With
End Sub

Though if taking the macro approach, you could simply insert the required
characters in the vReplText array.
By adding all possible combinations to find and replace, you can cater for
any eventuality.


--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP

My web site www.gmayor.com

<>>< ><<> ><<> <>>< ><<> <>>< <>><<>

Daiya said:
You know, I thought that if the text were tagged as French, then both
a replace operation and a Format | AutoFormat would switch to the
correct quotation marks, assuming the AutoFormat options were set up
right. But this is not working on my machine either, although if I
type new marks, it does. Perhaps someone else will know.

The semi-manual alternative--two Find and Replaces.

#1) Find opening quotation ³, typed via alt-[. Replace with opening
French quotation mark, copied into Replace box using control-C or
typed via alt-\.

#2) Find closing quotation ², typed via alt-shift-[ . Replace with
closing French quotation mark, copied into Replace box using
control-C or typed via alt-shift-\.

This should not be so laborious.

I always recommend making a COPY before doing a Replace All.


How can I replace all curly quotes with French (dagger or duck's
feet) quotes? When I use the unicode characters (eg 00AB) in
"Replace," it simply
replaces the curly quotes with curly quotes again. I can enter the
French quotes manually, but this is laborious.
 
G

Guest

Thanks. This does the trick. The key is the warning in the second sentence:
start with straight quotes in English. (I'm also glad to have the macro.)

Graham Mayor said:
Setting the language to French and running autoformat with the smart quote
option works for me. However, it won't work if the quotes are already
converted from straight quotes to smart quotes in another language. If that
was the case you would have to replace them with plain quotes first. The
following macro will do that for English smart quotes:

Sub ReplaceList()
Dim vFindText As Variant
Dim vReplText As Variant
Dim i As Long
vFindText = Array(Chr(145), Chr(146), Chr(147), Chr(148))
vReplText = Array(Chr(39), Chr(39), Chr(34), Chr(34))
With Selection.Find
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Format = True
.MatchCase = True
For i = LBound(vFindText) To UBound(vFindText)
.Text = vFindText(i)
.Replacement.Text = vReplText(i)
.Execute replace:=wdReplaceAll
Next i
End With
End Sub

Though if taking the macro approach, you could simply insert the required
characters in the vReplText array.
By adding all possible combinations to find and replace, you can cater for
any eventuality.


--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP

My web site www.gmayor.com

<>>< ><<> ><<> <>>< ><<> <>>< <>><<>

Daiya said:
You know, I thought that if the text were tagged as French, then both
a replace operation and a Format | AutoFormat would switch to the
correct quotation marks, assuming the AutoFormat options were set up
right. But this is not working on my machine either, although if I
type new marks, it does. Perhaps someone else will know.

The semi-manual alternative--two Find and Replaces.

#1) Find opening quotation ³, typed via alt-[. Replace with opening
French quotation mark, copied into Replace box using control-C or
typed via alt-\.

#2) Find closing quotation ², typed via alt-shift-[ . Replace with
closing French quotation mark, copied into Replace box using
control-C or typed via alt-shift-\.

This should not be so laborious.

I always recommend making a COPY before doing a Replace All.


How can I replace all curly quotes with French (dagger or duck's
feet) quotes? When I use the unicode characters (eg 00AB) in
"Replace," it simply
replaces the curly quotes with curly quotes again. I can enter the
French quotes manually, but this is laborious.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top