View Single Post
  #27   Report Post  
Posted to microsoft.public.word.docmanagement
Graham Mayor Graham Mayor is offline
external usenet poster
 
Posts: 19,312
Default Wildcard to Find and Replace with fields?

OK thanks for the explanation. I was beginning to think I had boobed

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



"Peter T. Daniels" wrote in message
...
It's ok, he's saying the macro is doing just what he wanted. In US
style, footnote marks (etc.) appear to the right, i.e. outside, of
punctuation marks, but author-date references are considered part of
the sentence so they go to the left, i.e. inside, of punctuation
marks.

On May 20, 1:01 am, "Graham Mayor" wrote:
Now you've lost me?

"David Newmarch" wrote in
message

...



Make that "one click on this macro now shifts all the citation OUTside
the
punctuation mark." Whoops.


"David Newmarch" wrote:


Perfect. Does exactly what's needed. One click in EndNote converts the
citation style, and one click on this macro now shifts all the
citations
inside the punctuation mark. Huge time saver.


Thank you very much indeed.


"Graham Mayor" wrote:


Let me get this right ... you want to move any comma or full stop
that
comes
immediately after the closing bracket of the field to immediately
before the
opening bracket of the field. Is that correct? In that case you can
create
another range at the end of the field to encompass the following
character,
essentially repeating the process to remove the space, and add the
content
of that range (if a comma or a full stop) after the previous range,
before
deleting the the second range.


Dim oField As Field
Dim oRng As Range, oEnd As Range
For Each oField In ActiveDocument.Fields
If InStr(1, oField.Code, "ADDIN EN.CITE") Then
oField.Select
Selection.Collapse wdCollapseStart
Set oRng = Selection.Range
oRng.MoveStart wdCharacter, -1
If oRng.Text = " " Then
oRng.Text = ""
End If
oField.Select
Selection.Collapse wdCollapseEnd
Set oEnd = Selection.Range
oEnd.End = oEnd.Start + 1
If oEnd.Text = "," Or oEnd.Text = "." Then
oRng.InsertAfter oEnd.Text
oEnd.Delete
End If
End If
Next oField


--

Graham Mayor - Word MVP


My web sitewww.gmayor.com
Word MVP web sitehttp://word.mvps.org


"David Newmarch" wrote in
message
...
Many thanks Graham. It works like a charm.


This is the second macro you've provided for me in the last couple
of
weeks,
and it has been an excellent learning curve studying how the VBA
pans
out.
I'm very grateful to you for that.


Would I be going too far out out of line to ask if you could extend
this
piece of code to perform one further operation?


Once the spaces to the left of a citation's insertion point have
been
removed I then want to search for any commas or full stops (only
commas or
full stops) that come immediately to the right of the insertion
point
(that
would be to the right of the field's closing curly bracket), and
move
them
to
a new position immediately to the left of the citation. Possibly
this
should
be a separate operation but I think it would be safe enough to do
it
all
in
one shot with a single macro.


What these two operations will in effect accomplish is to tidy up
the
puctuation for conversion of an in-text author-date citation style
like
APA,
where the citation is entered inside a comma or full stop, to a
citation
style using superscript numbered citations that must follow a comma
or
full-stop (in this case a superscript version of the Vancouver
style
that
is
common in medical publications). A macro that does it all in one
click
would
be a very handy little tool.


The author of the paper I'm editing originally wrote it for an
APA-style
journal, then decided to switch and send it to a medical-style
journal.
EndNote will change the form of the citations for you, but it
doesn't
have
a
way to shift their location.