General XMetaL Discussion
XMetaL Community Forum › General XMetaL Discussion › Call VBScript function from JScript?
-
fjeneau9 July 29, 2010 at 3:12 am
Call VBScript function from JScript?
July 29, 2010 at 3:12 amParticipants 0Replies 1Last Activity 12 years, 7 months agoHi,
Is there any way in a .mcr file to have a JScript macro call a VBScript function in a different macro?
simple example: (running macro “runMsg”)
Function displayMsg()
MsgBox “Hello”
End Function
]]>displayMsg();
]]>I currently get error “Description: Object expected”
Using “Application.Run…” won't help because, in reality, I need to pass a string to the VBScript function which then needs to return a string to the JScript macro.
Derek Read July 29, 2010 at 6:07 pm
Reply to: Call VBScript function from JScript?
July 29, 2010 at 6:07 pmBecause of the way Windows script engines work you cannot mix things like this.
I can think of two solutions I can think of.1) Rewrite the function that is being called in JScript or rewrite the calling code in VBscript.
2) Leave things as you have them and use a DocumentProperties object to temporarily store your string then at the start of the called macro read the value in.
Here are examples directly from the Programmer's Guide:
Setting a value using the Add method:
[code]var curDoc, curDocProps;
curDoc=Application.ActiveDocument;
curDocProps=curDoc.CustomDocumentProperties;
curDocProps.Add(“PreviewTempFile”,”foo.xml”);[/code]Reading the value using the Item method (I've changed the last line to be an Alert rather than SaveAs):
[code]var curDoc, curDocProps, ptf;
curDoc=Application.ActiveDocument;
curDocProps=curDoc.CustomDocumentProperties;
ptf = curDocProps.item(“PreviewTempFile”);
Application.Alert(ptf.Value);[/code]Which of these two options is more work I cannot say as you have simplified your example. If it was truly as you have written, or even if it was 10 or 20 lines, I'd probably take a few minutes to rewrite one of them just to make things easier to debug.
In general I would recommend standardizing on one scripting language for everything and then maybe, if there was something only a specific language can do, make that one exception (however, in my experience there always seems to be a way).
-
AuthorPosts
- You must be logged in to reply to this topic.