Okay, let's back up a bit. I'm sure you already know a bunch of this,
but...
A function is a procedure that returns a value. A sub is a procedure that
performs some action and doesn't return a value. An operator is a special
kind of function. VBA doesn't allow you to write your own operators, but
some languages do. Most operators are single characters, = and + are good
examples. A token is a character that tells the compiler how to interpret
the source code.
In the case of
x = Foo(y, z)
the ( and ) characters are _tokens_ that tell the compiler to send the
values of y and z to the function Foo. The = is an _operator_ that tells
the compiler to store the value returned by Foo in the variable x. That's
all straight-forward enough, I think.
But VBA has their syntactical wierdness in that it allows some procedures to
be called as either functions or subs. So you can say
x = Foo(y,z)
or
Foo x, y
It's convenient, but sometimes confusing, as when you have a single
argument, because the characters () can be both a token that says "pass
these values as arguments" and an operator that says "interpret this String
as an expression". So unless you also give the compiler the clue of the
assignment operator, it gets its wee self confused.
BTW, I don't think the () operators still work as operators; they've been
replaced by the explicit EVAL function.
Does that help?
--
Rebecca Riordan, MVP
Designing Relational Database Systems
Microsoft SQL Server 2000 Programming Step by Step
Microsoft ADO.NET Step by Step
http://www.microsoft.com/mspress
Blessed are they who can laugh at themselves,
for they shall never cease to be amused...