Я обнаружил существенную разницу в ключевом слове call с функциями, имеющими ByRef Arguments (я нашел это в редакторе MS-Access VBA). Если вы вызываете функцию без ключевого слова Call, aRuments ByRef не будут установлены для вызова. Например:
Private Function Test(Optional ByRef refArg As String) As Boolean
refArg = "Test"
Test = True
End Function
Если вы вызываете функцию без ключевого слова Call
, например
Dim a As String
Test(a)
a
будет пустой строкой после возврата вызова
Если вы вызываете функцию с ключевым словом Call
, например
Dim a As String
Call Test(a)
a
будет содержать строку Test
Подробное объяснение предоставлено по следующей ссылке:
http://blogs.msdn.com/b/ericlippert/archive/2003/09/15/52996.aspx