Argumente

Un argument este o piesă de informație - furnizat de o constantă, de o variabilă, de literal sau de o expresie – care este legată de o procedură (o funcție sau sub) sau o metodă. Unele argumente sunt necesare; altele sunt opționale. Textul salut din această funcție MsgBox este un argument:

MsgBox ("salut")

Unele argumente trebuie să fie închise între paranteze. Iată un alt exemplu. După cum ați văzut mai devreme, următoarea declarație utilizează argumentul opțional SaveChanges pentru a specifica dacă Word ar trebui să salveze orice modificări nesalvate în timp ce închide documentul activ:

ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges

Acest argument optional folosește constanta internă wdDoNotSaveChanges.

Înțelegerea elementului Literal

Un literal poate fi folosit în cod în locul unei constante sau variabile. Cu un literal, se tastează valoarea în argument. De exemplu, poate fi afișat mesajul care spune “salut” folosind o variabilă:

txtMsg = "Salut!"
MsgBox (txtMsg)

Sau se poate evita folosirea variabilei, folosind un literal (șirul de text) ca argument:

MsgBox ("Salut!")

Ambele variante au același rezultat.

Editorul Visual Basic Editor și fișierul de Help Visual Basic afișează lista de argumente pentru o funcție, o subprocedură sau o metodă în paranteze, cu argumentele opționale închise în paranteze. Dacă este activată funcția Auto Quick Info, Editorul afișează lista de argumente pentru o funcție, o submeniu sau o metodă după ce se introduce numele acesteia urmat de un spațiu.

Argumentele necesare nu sunt între paranteze. Argumentele opționale sunt închise între paranteze.

Dacă nu se furnizează o valoare pentru un argument opțional, VBA utilizează valoarea implicită pentru argument. (Pentru a afla valoarea implicită pentru un argument, se consultă fișierul de ajutor VBA Help. Valoarea implicită este de obicei valoarea cea mai frecvent utilizată.) Editorul Visual Basic utilizează caractere aldine pentru a indica argumentul curent din listă; pe măsură ce se introduce fiecare argument, următorul argument din listă este scris îngroșat.

Specificarea numelor de argumente versus Omiterea numelor pentru argumente

Argumentele pot fi adăugate în două moduri:

  • Se introduce numele argumentului (de exemplu, comanda ConfirmConversions), urmată de două puncte, semnul egal (ConfirmConversions:=), apoi constanta sau valoarea care va fi setată pentru ea (ConfirmConversions:=True). De exemplu, începutul instrucțiunii ar putea să arate astfel:
Documents.Open FileName:="c:\temp\Example.docm", _
     ConfirmConversions:=True, ReadOnly:=False
  • Sau se introduce constanta sau valoarea în poziția corespunzătoare din lista de argumente a metodei, fără a introduce numele argumentului. Declarația anterioară ar arăta astfel:
Documents.Open "c:\Temp\Example.docm", True, False

Când se folosește prima abordare - denumirea argumentelor – acestea nu trebuie puse în ordine, deoarece VBA caută numele lor pentru a le identifica. Următoarele afirmații sunt echivalente funcțional:

Documents.Open ReadOnly:=False, FileName:= "c:\temp\Example.docm", _ 
    ReadOnly:=False, ConfirmConversions:=True

și

Documents.Open FileName:="c:\temp\Example.docm", _
    ConfirmConversions:=True, ReadOnly:=False

De asemenea, nu trebuie indicate argumentele opționale care sunt omise.

În schimb, atunci când nu se folosesc numele argumentelor, se specifică care este argumentul, pur și simplu prin poziția sa din listă. Prin urmare, argumentele trebuie să fie în ordinea corectă pentru ca VBA să le recunoască cu precizie. Dacă se alege omiterea unui argument opțional, dar folosirea unui alt argument opțional care îl urmează, se introduce o virgulă (ca substituent) pentru a indica argumentul omis. De exemplu, următoarea afirmație omite argumentul ConfirmConversions și utilizează o virgulă pentru a indica că valoarea False se referă la argumentul ReadOnly și nu la argumentul ConfirmConversions:

Documents.Open "c:\temp\Example.docm",, False

De reținut că atunci când se introduce virgula în fereastra Cod sau în fereastra Immediate, Info Auto Quick deplasează caracterele aldine la următorul argument din lista de argumente pentru a indica faptul că acel argument este următorul din linie.

Argumentele necesare le preced pe cele Opționale

De obicei, argumentele necesare sunt listate mai întâi în lista cu argumente - înaintea argumentelor opționale. Astfel, nu trebuie utilizate virgule pentru a indica omisiunea unor argumente opționale – atunci când se introduce doar argumentele necesare. Restul elementelor din lista de argumente poate fi omis.

Includerea listei de argumente între paranteze

Majoritatea programatorilor includ lista de argumente între paranteze. Acest lucru face codul mai ușor de citit. Cu toate acestea, parantezele pot fi omise în anumite circumstanțe. Când rezultatul unei funcții se atribuie unei variabile sau unui alt obiect, trebuie inclusă întreaga listă de argumente între paranteze. De exemplu, pentru a atribui variabilei objMyDocument rezultatul deschiderii documentului c: \ temp \ Example.docm, se folosește următoarea instrucțiune:

objMyDocument = Documents.Open(FileName:="c:\temp\Example.docm", _ 
    ConfirmConversions:=True, ReadOnly:=False)

Cu toate acestea, atunci când rezultatul unei operații nu se atribuie unei variabile sau unui obiect, nu este necesară utilizarea parantezelor în jurul listei de argumente, chiar dacă este o practică obișnuită. Următoarele exemple ilustrează modul în care parantezele se poate utiliza sau exclude, atunci când rezultatul nu se atribuie unei variabile sau altui obiect:

MsgBox ("Salut!")


  MsgBox "Salut!"