Efectuarea procedurilor în VBA

Anterior, odată cu lansarea procedurilor de „macrocomenzile,“ ne-am întâlnit deja. De asemenea, ne-am numit procedurile noastre hotkeys. Acum să vorbim despre câteva modalități de a începe procedurile în VBA.

Efectuarea procedurilor de meniu Excel personalizat

Deci, de exemplu, avem nevoie pentru a rula o procedură simplă care returnează: Numele de utilizator și ora și data curentă a PC-ului în mesaj. Codul de procedură:

Sub GetUserDate ()
msg Dim ca șir de
msg = "Utilizator:" Environ ( "UserName") Chr (13) _
„Data și ora curentă“ acum
„Environ («UserName») returnează numele utilizatorului curent
„Acum - returnează data și ora la care PC-ul
MsgBox msg
end Sub

Efectuarea procedurilor în VBA

Notă. Când deschideți „Settings“, puteți modifica orice element din meniu în panouri și meniuri drop-down.

2. Trageți și drop metoda Drag Picătură din „echipa“, din care un element este numit „comanda meniului personalizat“ în partea de jos a meniului „date“, plasându-l după elementul „Refresh date“.

Efectuarea procedurilor în VBA

3. Faceți clic dreapta pe noul element de meniu „comanda meniului personalizat“ și în meniul contextual în caseta Nume, tastați numele element de meniu „numele de utilizator și data“

Efectuarea procedurilor în VBA

4. Acum trebuie doar să se conecteze la procedura noastră (macro) cu acest element. Pentru a face acest lucru, setările de comenzi rapide elementul de meniu „comanda de meniu personalizat“, adică are „numele de utilizator și data“, selectați elementul „Alocare Macro“ și selectați procesul nostru din listă:

Efectuarea procedurilor în VBA

Toate. Faceți clic pe OK și închide fereastra „Setări“. Testare, meniul Date - numele de utilizator și data, pentru a primi mesajul:

Efectuarea procedurilor în VBA

Efectuarea procedurii dintr-o altă procedură

Cele mai frecvente apel mod (a efectua) procedura este un apel de procedură dintr-o altă procedură. Există trei moduri de a face acest lucru:

Să luăm în considerare fiecare metodă în exemple. Pentru a face acest lucru, creați un modul cu o procedură creată anterior GetUserDate, procedura de asteptare CallProc.

CallProc Sub ()
GetUserDate
end Sub

SubToCall Dim Ca variabilă String“conține numele procedurii

Selectați Case Weekday (Acum, vbMonday)
Cazul 1 la 5: SubToCall = "muncă"
Cazul 6 până la 7: SubToCall = "odihnă"
Sfârșit Selectați

Notați numele procedurii numit este atribuită SubToCall variabilă șir ca o linie de text obișnuit. Funcția Ziua săptămânii determină data curentă (care este returnat la built-acum) ziua săptămânii, care este verificată în cauza-selectorului (de lucru cu Case citi aici) și în conformitate cu ziua de întoarcere a săptămânii atribuie șir SubToCall variabilă care conține numele procedurii care trebuie să fie cauza. Pe lângă Application.Run SubToCall trece ca argument. Vreau să atrag atenția asupra funcției Weekday - funcția este încă al doilea parametru opțional care determină care zi a săptămânii să înscrie zile. În mod implicit, contul este duminică, deci constantă vbMonday. în exemplul nostru, funcția indică faptul că contul pe care doriți să înceapă luni.

Procedura de apel de la un alt modul

Vreau să rețineți că proiectele mari pot conține mai mult de o duzină de proceduri globale, funcții, variabile care sunt accesate dintr-o varietate de module, și pentru a face viața mai ușoară, pentru ei înșiși și pe alții, trebuie să fie întotdeauna calea completă a procedurii, chiar dacă această procedură are un nume unic .

Ei bine, asta-i tot. Următorul articol a apuca o modalitate este de a apela procedurile din alte cărți. Și totuși - încă!