• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Applescripting Office X
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Applescripting Office X


  • Subject: Re: Applescripting Office X
  • From: "Claude M. CAUWE" <email@hidden>
  • Date: Sun, 4 Jan 2004 19:56:14 +0100

On Jan 4, 2004, at 19:31, Paul Berkowitz wrote:

You shouldn't be using " & vblf & " in VBA. Word (even Win Word) uses
Mac-type carriage returns, not Unix-type or even DOS-type. If these returns
are within text you can use " & vbCr & ". If they're within code but not
literal text then - in the past - a simple line ending is good enough.

I think you must be hitting a new kink using Script Editor 2.0 which uses LF
(ASCII 10) for its line endings. (I work mostly in Script Debugger and keep
to CR - ASCII 13 - for line endings there).

OK, I think you are very close to the problem.
I'll try to explain better:

If I record a very easy macro using MacroRecorder, then copy the code in a "do Visual basic" command from Applescript,
Words stops responding with a "syntax error". I discovered that all the carriage returns wre of the "& vlbf &" type, and that they were the culprits.

Since all 'do Visual Basic'
commands are strings _within AppleScript_, that means that your line endings
are getting transmitted as LF which will be wrong for VBA.

Indeed

I don't quite
follow exactly what you're saying, but I'd suggest running your VB code
through a handler that replaces every line ending not with internal literal
quotes with ' & return & '(NOT inside quotes!!). E.g., if the original VB is

Dim oDoc As Document
Set oDoc = Documents.Add
oDoc.PrintOut

You would write

set vbScript to "Dim oDoc As Document
Set oDoc = Documents.Add
oDoc.PrintOut
"

set vbScript to my ReplaceLineEndings(vbScript)
tell application "Microsoft Word" to do Visual Basic vbScript

on ReplaceLineEndings(someText)
set theLines to paragraphs of someText
set AppleScript's text item delimiters to {return}
set fixedText to theLines as string
set AppleScript's text item delimiters to {""}
return fixedText
end ReplaceLineEndings

That's just a start. You also need the other replacements for internal
quotes and so on which you already have. If the original VB (that works in
VB Editor) contains ' & vbCr & ' you can transcribe those literally. If the
original AppleScript contains line endings within hard-coded literal text,
you need to change those to ' & vbCr & '. (If I remember correctly the only
thing that would need ' & vbLf & ' is text to be displayed in a MsgBox
within Word.)

Just a probably stupid question: can I write the "do Visual basic" VB code non stop, just putting "& vbCr &" instead of hitting "return" on the keyboard ?


To avoid the need for the ReplaceLineEndings handler above you could be
using Smile instead of Script Editor 2. Smile will use CR line endings.

I hope this is actually pertinent to your problem, which I don't fully
follow.

I think you guess pretty well what the problem can be.
I'll try you solutions and keep you posted. Many txs for the continuous support

Claude

--
Paul Berkowitz


From: Claude M.CAUWE <email@hidden>
Date: Sun, 4 Jan 2004 15:29:45 +0100
To: Paul Berkowitz <email@hidden>
Cc: AppleScript-Users <email@hidden>
Subject: Re: Applescripting Office X

paul, many thanks for the useful tips.

I found what I neede (or close to) in your reference documents.

HOWEVER...

Soemthing strange keeps on bugging me.

If I record a VBA script in VBE, and then copy-paste it to AppleScript,
most of the time, I will get a Word error stating "Syntax error" in TMP
DDE"
The offenders being "& vblf &" strings which replace the "carriage
return" in Applescript. even stranger, when I copy-paste the VBA in
Appelscript and run it immediately, no error warning will happoen.
Should I have to modify annything in the Applescript code, then teh "&
vblf &"'s are back, and it crashes the execution.

Would any of you have any idea how to avoid this trouble ?

MTIA

Claude


On Jan 3, 2004, at 18:50, Paul Berkowitz wrote:

--
Paul Berkowitz


From: "Claude M. CAUWE" <email@hidden>
Date: Sat, 3 Jan 2004 18:03:36 +0100
To: <email@hidden>
Subject: Applescripting Office X

I have lots of trouble porting an lawyer's office administrative
system
which relies mainly on a FileMaker set of databases and Applescripts
transferring names, addresses and case references to MS Word
(initially
Office 98) for mail redaction.

In OS 9, simple commands like

tell application "Microsoft Word"
activate
set cell 2 of table 1 of front document to customerAddress
save front document in folderPath & folderName & ":" & saveName
end tell

worked perfectly. Now, with the upgrade to Panther (and, subsequently
to Office X), i'm dumped in big trouble because none of the simple
commands (make new table, set cell .. of table .., etc) works anymore.

For some of them, i for sure can use the "do Visual basic" command,
followed by the reference of the table to be created.
But my most important trouble remains to SET the CELLS of the newly
created table... I need to put variables in these celles, thos
variables being the names and case references, etc..., which come from
FileMaker...

It's all doable via 'do Visual Basic', which is the only way you're
going to
be able to do it in any current version of Word. Unfortunately, it
does mean
learning some of the basics of another scripting language - VBA. The
VBA
Help in Visual Basic Editor is actually very good and you could learn
what
you need to do by following the Help and Examples there. An excellent
primer
is the O'Reilly book "Writing Word Macros": it presents a clear and
orderly
tutorial for learning VBA for Word. It's quite possible to set the
content
of table cells in VBA.

For some guidance on using 'do Visual Basic', including incorporating
AppleScript variables into 'do Visual Basic' commands, see

<http://www.mvps.org/word/FAQs/WordMac/WordAppleScript.htm>

But you have to go there in Internet Explorer - it comes up blank in
Safari.

For some more advanced examples specifically of using tables in
AppleScript,
you might want to work your way through the 'do Visual Basic' parts of
my
script "Print Tasks Lists", which you can get at

MacScripter.net <http://macscripter.net/scriptbuilders/>


Ant help would be grandly appreciated, for no litterature already
exists on how to Applescript Word X.

See the web page above.
_______________________________________________
applescript-users mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/applescript-users
Do not post admin requests to the list. They will be ignored.
_______________________________________________
applescript-users mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/applescript-users
Do not post admin requests to the list. They will be ignored.
_______________________________________________
applescript-users mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/applescript-users
Do not post admin requests to the list. They will be ignored.

References: 
 >Re: Applescripting Office X (From: Paul Berkowitz <email@hidden>)

  • Prev by Date: Re: Applescripting Office X
  • Next by Date: Re: File sharing quits by itself
  • Previous by thread: Re: Applescripting Office X
  • Next by thread: Re: Is the Sidebar in Finder windows applescriptable?
  • Index(es):
    • Date
    • Thread