Argumente opționale pentru funcțiile vba

Specificarea unui tip de argument opțional

Pentru a putea utiliza în mod adecvat funcțiile și operatorii pentru a detecta care funcția de transfer este declarată nulă de tip valoare un argument opțional (în caz contrar ei au o variantă de tip). Tipul argumentului opțional este declarat în același fel ca tipul de argument obligatoriu - folosind cuvântul cheie As:

Funcția NameFunct (tStr ca șir, opArArArArArgument ca întreg) ca șir

Valorile implicite pentru argumentele opționale

Puteți specifica VBA pentru a seta argumentul opțional la valoarea implicită. VBA utilizează valoarea implicită de fiecare dată când este apelată o funcție fără ca acest argument opțional să fie inclus.

Funcția GetBookName (opțional lDflt ca șir = "Book1") ca șir

Transmiterea argumentelor

Există două moduri de a transfera informațiile într-o funcție de procedură: prin referință (implicit) și prin valoare.

Aceasta înseamnă că, dacă funcția modifică valoarea în oricare dintre argumente, atunci datele originale se modifică.

Când transmite un argument unei valori, VBA face o copie a datelor originale și transmite această copie a funcției. Dacă funcția modifică valoarea din argumentul transmis prin valoare, numai copia datelor este schimbată, iar datele originale nu sunt modificate.

Argumente opționale pentru funcțiile vba

pentru că trecerea prin referință permite funcției să modifice valoarea datelor de intrare ale argumentelor sale, argumentele transmise prin referință pot primi valori secundare nedorite.

Listarea prezentate mai sus arată că, înainte de funcția de aplicare șir Argument șirul de text variabil s1 conținut în caz de jos, iar după funcția de aplicare, aceasta conține deja șirul în litere mari.

Strict vorbind, efectele secundare sunt opționale și, în majoritatea cazurilor, sunt nedorite. Pentru a preveni astfel de efecte secundare, este necesar ca funcția să funcționeze cu o copie a valorii argumentului, și nu cu datele originale.

Pentru a specifica în mod explicit VBA trece argumente prin valoare sau prin referință, este necesar să se utilizeze cuvântul cheie ByVal, ByRef înainte de argumentul pe care doriți să setați metoda de transmisie.

Argumente opționale pentru funcțiile vba

Este necesar să se declare argumentul cu cuvântul cheie ByVal să-l transmită valoarea în cazul în care există îndoieli dacă să transmită acest argument special prin referință sau prin valoare.

Articole similare