Opcionális argumentumok a vba funkciókhoz
Opcionális argumentum típus megadása
A függvények helyes használatához és azoknak az operátoroknak a felismeréséhez, amelyek a funkciókat hibás értékekre adják, az opcionális argumentum típusát deklarálják (különben Variant típusúak). Az opcionális argumentum típusát ugyanúgy deklaráljuk, mint a kötelező argumentumtípust - az As kulcsszó használatával:
Funkció NameFunct (tStr mint karakterlánc, opcionális neobArgument mint egész) mint string
Az opcionális argumentumok alapértelmezett értékei
Megadhatja a VBA-t, hogy beállíthatja az opcionális argumentumot az alapértelmezett értékhez. A VBA az alapértelmezett értéket minden alkalommal használja, amikor egy függvényt hívnak, anélkül, hogy ez az opcionális argumentum lenne benne.
Funkció GetBookName (Opcionális lDflt As String = "Book1") Stringként
Érvek átadása
Kétféleképpen lehet információt továbbítani egy eljárásfunkcióra: referencia (alapértelmezés szerint) és érték szerint.
Ez azt jelenti, hogy ha a függvény bármely argumentumban megváltoztatja az értéket, akkor az eredeti adatok is megváltoznak.
Amikor egy argumentumot átad egy értéknek, a VBA az eredeti adatok egy példányát készítette el, és átadja a funkciónak ezt a másolatát. Ha a függvény az értéken átadott argumentum értékét megváltoztatja, csak az adatok másolatát módosítja, és az eredeti adatokat nem változtatja meg.

mert a hivatkozás alapján történő átkapcsolás lehetővé teszi, hogy a függvény megváltoztassa az érvei bemeneti adatainak értékét, a referenciákon átadott érvek nemkívánatos mellékértékeket kaphatnak.
A fenti felsorolás azt mutatja, hogy az Argument funkció használata előtt az s1 string változó szöveges karakterláncot tartalmaz kis betűkkel, és a függvény alkalmazásakor már tartalmazza a nagybetűs stringet.
Szigorúan a mellékhatások opcionálisak és a legtöbb esetben nemkívánatosak. Az ilyen mellékhatások megelőzése érdekében a függvénynek az argumentum értékének másolatával kell dolgoznia, és nem az eredeti adatokkal.
Ha kifejezetten meg szeretné adni, hogy a VBA értékeit vagy hivatkozásait értékenként vagy hivatkozásként adja át, akkor a ByVal, ByRef kulcsszavakat kell használnia azon argumentum előtt, amelyhez az átviteli módot meg kívánja adni.

Értesítenie kell a ByVal kulcsszavával kapcsolatos érvelést annak érték szerinti átadásához, ha kétségei merülnek fel arra vonatkozóan, hogy ezt a konkrét érvet át kell-e adni referenciaként vagy értékenként.