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
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“.
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“
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ă:
Toate. Faceți clic pe OK și închide fereastra „Setări“. Testare, meniul Date - numele de utilizator și data, pentru a primi mesajul:
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ă!