View Single Post
  #11   Report Post  
Posted to microsoft.public.word.docmanagement
lewisma lewisma is offline
external usenet poster
 
Posts: 16
Default Creating a Macro

Sorry i didn't spot the link when i read your reply. OK i have tested this
and it seems to work really well, how do i get the script to change for
bottom right/left. It only changes the upper phrases but this is definatly
looking good, i really appreciate your help with this
--
lewisma


"Graham Mayor" wrote:

http://www.gmayor.com/installing_macro.htm

--

Graham Mayor - Word MVP

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



lewisma wrote:
Graham

This is fantastic, i will give it a try, what's the best way to get
the script into a macro, before i just went into Word/Macro and
Create Macro, named it and just pasted in the script, should i be
doing it that way or is there another way to do this ?
Thanks

If you can find suitable characters and substitute them in and the
font they are derived from in the macro I posted, it will do just
that.. Digging around in Unicode fonts for some suitable shape I
came up with the following which uses box drawing shapes from the
Arial Unicode font, which is a fairly standard font that you will
have.

Sub ReplaceList()
Dim vFindText As Variant
Dim vReplText As Variant
Dim i As Long
vFindText = Array("upper left", "upper right", "lower left", "lower
right") vReplText = Array(ChrW(9496), ChrW(9492), ChrW(9488),
ChrW(9484))
With Selection
.HomeKey wdStory
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Format = True
.MatchCase = False
For i = LBound(vFindText) To UBound(vFindText)
.Text = vFindText(i)
.Replacement.Text = vReplText(i)
.Replacement.Font.name = "Arial"
.Replacement.Font.Size = 14
.Execute Replace:=wdReplaceAll
Next i
End With
End With
End Sub

--

Graham Mayor - Word MVP

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



lewisma wrote:
Graham

Many thanks for your quick response. I have just been told that the
shape does not need to have anything typed into it now. So all that
needs to be done is for the phrases to be replaced by the shape.
Does this make the end result a little easier now ?
Look forward to your comments, thanks

It is easy enough to run through a document and process a list of
words or phrases, but the problem here is the autoshape and more
particularly your requirement to have a shape that you can write
in. The logical shape would be a table cell, to which you could
apply borders to produce the four shapes and type in the space,
but you cannot intersperse table cells with text - each cell would
have to be on its own line.

Text boxes etc are out because you cannot format the edges of the
box individually.

You could use (say) the characters 195/196 199/200 from the
Wingdings font, which would provide suitably adventurous shapes,
but you wouldn't be able to type in the spaces - only alongside.

To do that -

Sub ReplaceList()
Dim vFindText As Variant
Dim vReplText As Variant
Dim i As Long
vFindText = Array("upper right", "upper left", _
"lower right", "lower left")
vReplText = Array(Chr(200), Chr(199), Chr(196), Chr(195))
With Selection
.HomeKey wdStory
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Format = True
.MatchCase = False
For i = LBound(vFindText) To UBound(vFindText)
.Text = vFindText(i)
.Replacement.Text = vReplText(i)
.Replacement.Font.name = "Wingdings"
.Replacement.Font.Size = 14
.Execute Replace:=wdReplaceAll
Next i
End With
End With
End Sub

--

Graham Mayor - Word MVP

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



lewisma wrote:
Hi

I need to create a macro which will look through word documents.
The macro will need to look for certain words which are (upper
right, upper left, bottom right and bottom left). These words
will then need to be replaced by some kind of autoshape/symbol.
Upper right would need to become |_
Upper left would need to become _|
Bottom right would need to become | with a line on the right hand
side (at the top)
Bottom left would need to become | with a line on the left hand
side (at the top)
The autoshape/symbol also needs to be active so the typist can
type in a number of 1-8 in the box, this is a dental grid. I know
how to record macros and i am happy finding and replacing words,
but this is proving quite difficult to achieve. Is there any sort
of vb script out there that will accomplish this, what is the
best way to get the end result. I am very new to VB so my
knowledge is very limited.
Any help would be very much appreciated. Thanks in advance

lewisma

lewisma