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

I copied and pasted your script into a new word macro, when i try to run it i
get the following error message.

Compile Error: Expected End Sub

Below is the script.

Sub lewis()
'
' lewis Macro
' Macro created 18/08/2008 by MedQuist
'
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


End Sub

Any ideas what i'm doing wrong here ?
Your help is appreciated, thanks
--
lewisma


"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
--
lewisma


"Graham Mayor" wrote:

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