You can use Execute() or Evaluate() to invoke an existing script function, but doing so is suboptimal for several reasons.

First, as you've noted, these methods don't support argument passing. They execute arbitrary script code, and neither JavaScript nor VBScript provide standard conventions for argument passing in this context. You could of course invent your own conventions
(e.g., storing arguments in a global script object with a well-known name), but that is a brittle approach that would only work for first-party script code.

The other factor to consider is that Execute() and Evaluate() are top-level entry points into the script engine's parsing and JIT compilation stack. They're relatively expensive. If all you need to do is invoke a script function that
is already parsed and compiled, these methods are the wrong tool for the job.

The Script property gives you direct access to an existing script function, which you can then invoke without parsing or compiling additional script code. In addition to making it easy to pass arguments, this is important for performance.
In fact, if the function is one that you call often, we recommend that you cache it and avoid going through
Script every time: