Э, рискну вставить слово:
Параметры принято передавать по порядку их перечисления, причем сначала обязательные, потом опциональные. Часто так бывает, что функция имеет массу опциональных (т.е. возможных, но не обязательных) параметров, и не имеет смысла перечислять их все при ее вызове, если нужно изменить лишь последний, вот тогда и используют
ParamName := ParamValue, объясняю на примере:
можно вызвать MsgBox так:
MsgBox "Message", vbOKOnly, "MyTitle" 'здесь все попорядку
MsgBox Title:="MyTitle", prompt:="Message" 'А здесь уже нет
И наконец, программы MSOffice, умеющие записывать действия пользователя языком VB в макросы используют в основном именно такой механизм записи, даже если парметры идут попорядку, так что необязательно повторять за ними без надобности.
Что касается вызова со скобками и без:
1. Если ожидается, что функция или свойство должны что-то вернуть, то их параметры идут
в скобках и в операторе присвоения они находятся справа от него(=)
- Код: Выделить всё
Dim R As VbMsgBoxResult
R = MsgBox("Message", vbYesNo, "MyTitle")
2. Если что-то присваивается свойству, которое имеет несколько параметров , они записываются
в скобках- Код: Выделить всё
Obj.Property(1, 2, 3) = 4
3. Если же процедура ни есть функция и ничего не возвращает, а просто вызывается (или она метод), то парметры к ней записываются
без скобок- Код: Выделить всё
MsgBox "Message", vbYesNo, "MyTitle"
4. Если же процедура вызывается через Call то параметры идут
в скобках- Код: Выделить всё
Call MsgBox("Message", vbYesNo, "MyTitle")
5. Если функция возвращает значение для параметра другой функции или процедуры, то параметры первой записываются
в скобках- Код: Выделить всё
MsgBox String$(50,255), vbYesNo, "MyTitle"
Вот, маленькое FAQ, если что не так - исправляйте, если не дописал - добавляйте