Ed
Thu Jun 29 15:02:48 CDT 2006
> Set proc = wsh.Exec("cscript " & chr(34) & FPath & "MacroTest.vbs" & chr(34)
> & " " & str & " " & x)
>
> Be careful to get the spaces and quotes in the right places so the command
> processor doesn't barf on an invalid file name.
>
> You also need Karl's modification of the script to call the function, since
> all you're passing are the filename and the arguments.
>
Thanks, Jay. Changes made. But still no joy. Ah, well.
Ed
Jay Freedman wrote:
> Comment in-line about halfway down...
>
> Karl E. Peterson wrote:
> > Ed wrote:
> >> Hi, Karl. No, this is only for me. I'm not about to unleash my
> >> messes on the world at large!! <g>
> >>
> >> Okay - I'm trying to take this one step at a time. I've got a vbs
> >> file with
> >>
> >> Sub TestMe(str, x)
> >>
> >> Set Args = WScript.Arguments
> >> This = Args(0)
> >> That = Args(1)
> >> wscript.echo This
> >> wscript.echo That
> >>
> >> End Sub
> >>
> >> and I've got a Word macro with
> >>
> >> Sub TestMyScriptHere()
> >>
> >> Dim str As String
> >> Dim x As Long
> >> str = "ABC"
> >> x = 2
> >>
> >> Dim FPath As String
> >> FPath = "C:\Documents and Settings\edward.millis\My
> >> Documents\Scripting\"
> >>
> >> Dim wsh, proc
> >>
> >> Set wsh = CreateObject("WScript.Shell")
> >> Set proc = wsh.Exec("cscript FPath & MacroTest.vbs str x")
> >>
> >> End Sub
>
> Part of the problem is in the parameter you pass to wsh.Exec. Because the
> whole thing is enclosed in one pair of quotes, you're getting the literal
> strings "FPath", "str" and "x" in the command, instead of the values of the
> intended variables. Also, because the path contains spaces, the whole
> path\filename needs to be enclosed in quotes, represented by chr(34). The
> syntax should be [all on one line]
>
> Set proc = wsh.Exec("cscript " & chr(34) & FPath & "MacroTest.vbs" & chr(34)
> & " " & str & " " & x)
>
> Be careful to get the spaces and quotes in the right places so the command
> processor doesn't barf on an invalid file name.
>
> You also need Karl's modification of the script to call the function, since
> all you're passing are the filename and the arguments.
>
> >>
> >> I ran it, and got a brief flash of a command prompt window (Word
> >> &Windows XP) - no "echo" message boxes. So I at least got the macro
> >> to open the script file. I didn't get the variables into the script,
> >> though. Is there hope for me? Do I need years of intnse training?
> >> Or will a small drop-kick in the right direction get me going?
> >
> > Heh, VBScript takes patience, and the inate ability to break things
> > up into the smallest possible chunks. Try running the script
> > directly from the command line, first, for example, to determine what
> > it's doing. Going back to that:
> >
> >> Sub TestMe(str, x)
> >>
> >> Set Args = WScript.Arguments
> >> This = Args(0)
> >> That = Args(1)
> >> wscript.echo This
> >> wscript.echo That
> >>
> >> End Sub
> >
> > You're not calling the TestMe subroutine? Try rewriting like this:
> >
> > ----------------------------
> > Call TestMe
> >
> > Sub TestMe()
> > Set Args = WScript.Arguments
> > This = Args(0)
> > That = Args(1)
> > wscript.echo This
> > wscript.echo That
> > End Sub
> > ----------------------------
> >
> > Then, at the command prompt (beware word-warp):
> >
> > C:\Documents and Settings\edward.millis\My Documents\Scripting>cscript
> > MacroTest.vbs ABC 2
> >
> > You should see your parameters echoed at this point.
>
> --
> Regards,
> Jay Freedman
> Microsoft Word MVP FAQ:
http://word.mvps.org
> Email cannot be acknowledged; please post all follow-ups to the newsgroup so
> all may benefit.