Noțiuni de bază cu VBA în Excel 2018
VBA funcționează prin executarea macro-uri. proceduri pas scrise în Visual Basic. formare de programare poate parea descurajatoare, dar cu unele răbdare și cu ajutorul mai multor exemple, cum ar fi cele prezentate în acest articol, mulți utilizatori găsi că stăpânirea chiar mici în abilitățile de programare VBA le permite să efectueze acțiuni care anterior părea să-i imposibil de Office. Stăpânirea unele funcții VBA simplifică dezvoltarea următoarei - oferă atât oportunități nelimitate.
În orice caz, utilizatorul nu poate să efectueze acești pași manual, cel puțin nu mai mult de câteva ori. În schimb, puteți automatiza sarcinile folosind VBA, pentru a scrie instrucțiuni explicite pentru a fi executate Excel.
Folosind codul pentru operațiunile de funcționare
obiecte programabile sunt legate între ele într-o ierarhie numit modelul obiect al cererii. Aproximativ vorbind, modelul obiect reflectă ceea ce este afișat în interfața cu utilizatorul, de exemplu, modelul de obiect Excel conține, printre multe alte obiecte de aplicații. Workbook. Fișa și Chart. Modelul obiect este o serie de aplicații de carduri comune și capacitățile sale.
Proprietăți și metode
obiecte gestionate pot fi cere proprietatile si metodele lor care le determină. Sarcina de proprietate schimbă unele de calitate a obiectului. apel de metodă face ca obiect pentru a efectua o acțiune. De exemplu, un obiect Workbook are o metodă Închide. închizând cartea și proprietatea ActiveSheet. reprezentând o foaie este activ în prezent în carte.
Multe facilități sunt disponibile în versiuni de singular și plural - Workbook și Workbooks, foaie de lucru și foi de lucru, etc versiuni de plural sunt numite colecții ... colecții de obiecte sunt folosite pentru a efectua acțiuni privind colectarea de obiecte multiple. Mai târziu, în acest articol discută despre modul de utilizare a colecției foi de lucru pentru a schimba numele fiecărei foi de carte.
Tab „Producător“
Activarea unei file „Producător“
În fila Fișier, faceți clic pe Opțiuni. pentru a deschide caseta de dialog Opțiuni Excel.
Faceți clic pe Particularizare Panglică în partea stângă a casetei de dialog.
În Alegeți comenzi din. situat în caseta din stânga, selectați echipa de top.
În Particularizare Panglică. care este la dreapta în caseta de dialog, selectați fila Main. și apoi selectați Developer.
Faceți clic pe OK.
Când fila Dezvoltator apar în interfața Excel, notați locația butoanelor de pe fila Visual Basic. Securitate Macro și Macro.
probleme de securitate
Faceți clic pe Securitate Macro. pentru a determina care macro-urile pot rula și în ce condiții. Deși codul macro necontrolată poate deteriora grav calculatorul, condițiile de securitate care interzic efectuarea macro-uri utile pot degrada în mod serios performanța lucrării. Macro Security - este o problemă complexă și importantă, care este necesar să se înțeleagă atunci când se lucrează cu macro-uri Excel.
În sensul prezentului articol, amintiți-vă că dacă deschideți un registru de lucru care conține un macro, de avertizare de securitate rând apare între bandă și foaia: Macrocomenzi dezactivată. aveți posibilitatea să faceți clic pe Activare conținut. pentru a activa macro.
În plus, ca o garanție, nu puteți salva macro în formatul de fișier Excel utilizat în mod implicit (XLSX-fișiere), în loc de macro trebuie să fie stocate într-o extensie de fișier special, XLSM-fișier.
Procedura următoare arată cum să creați un nou registru de lucru necompletat în care sunt stocate macro-uri. Apoi, puteți salva această carte în format XLSM-fișier.
Crearea unui nou registru de lucru necompletat
Apăsați butonul macro de pe fila „Producător“
În caseta de dialog Macro, introduceți Hello în caseta Nume Macro.
Du-te înapoi la fila Dezvoltator în Excel, și apoi apăsați din nou butonul macro.
Selectați macro Hello din lista care apare, apoi pe Executare. pentru a afișa o casetă de mesaj mic care conține textul „Bună ziua, lume!“.
Acesta tocmai a fost creat și a lansat un cod VBA particularizat în Excel. Faceți clic pe OK în caseta de mesaj pentru a închide și a termina rularea macro.
Dacă mesajul nu apare, verificați setările de securitate macro și reporniți Excel.
Furnizarea accesului la macro-uri
Macro dialog deschis poate fi, de asemenea, din fila View. dar utilizarea frecventă a macro-uri pot fi mai convenabil să-l apelați cu panoul de taste de comenzi rapide sau butoanele de comenzi rapide.
Pentru a crea un buton pentru macro Buna ziua de pe bara de instrumente Acces Rapid. Utilizați următoarea procedură.
Următoarea procedură descrie modul de a crea un buton pentru un macro Bara de instrumente Acces Rapid.
Crearea unui buton pentru un macro Bara de instrumente Acces Rapid
Faceți clic pe fila Fișier.
Faceți clic pe butonul Opțiuni. pentru a deschide caseta de dialog Opțiuni Excel. și apoi faceți clic pe bara de instrumente Acces rapid.
În lista de sub Alegeți comenzile din, selectați Macro. Găsiți text similar cu Book1! Buna ziua. în lista care apare și selectați acel text.
Faceți clic pe Adăugați >>. Pentru a adăuga un macro lista de pe partea dreaptă, apoi pe Modificare .... buton pentru a selecta o imagine, link-ul cu macro.
Faceți clic pe OK. Un nou buton ar trebui să apară pe bara de instrumente Acces rapid deasupra fila Fișier.
Acum puteți rula rapid macro, în orice moment, fără a recurge la fila Dezvoltator - încercați.
Să presupunem că există o carte care conține liste cu setul de foi și trebuie să se schimbe numele fiecărei foi, în conformitate cu titlul lista pe foaia. Nu orice listă conține o listă, dar dacă există o listă, titlul acesteia este în celula B1, iar în cazul în care nu există o listă, celula B1 este gol. Numele de foaie, fără liste nu ar trebui să fie schimbate.
obiecte de relație
Figura 3. Excel Object Model Reference pe MSDN
Primul pas - pentru a înțelege modul de a gestiona anumite obiecte, aveți nevoie pentru a rezolva problema, cum ar fi foi, nume de foi, celule și conținutul de celule. În Excel, există cel puțin două moduri de a rezolva această problemă:
Utilizarea directă de orientare pe modelul de obiect.
Abordarea aleasă depinde de preferințele personale, dar în acest caz, încercați mai întâi să utilizați înregistrarea macro.
Utilizarea Macro Recorder
Uneori, tot ceea ce este necesar - pur și simplu a înregistra un macro, în acest caz, nici măcar nu au nevoie pentru a vizualiza codul. Dar cele mai multe înregistrări nu sunt suficiente. Dar punctul de plecare de înregistrare este procesul ulterior.
Folosind înregistrarea macro ca un punct de plecare soluții
Se înregistrează acțiunile pe care trebuie să le codifica.
Scoateți restul codului.
Modificați codul înregistrat.
Adăugați variabilele, structurile de control, și alte coduri care nu pot fi înregistrate în timpul înregistrării unui macro.
Porniți de cercetare cu macro recorder, care se schimbă numele foii la noul nume. Apoi, puteți utiliza macro înregistrate pentru a crea un macro personalizat pentru a redenumi mai multe coli, pe baza conținutului lor.
Macro, redenumiți foaie
Faceți clic pe Înregistrare macro pe fila Dezvoltator.
Call RenameWorksheets macro. redenumi Foaia1 la New Name, apoi faceți clic pe Oprire înregistrare.
Linia următoare utilizează metoda Select. pentru a selecta un membru al Foaia1 obiect de colectare Foi de calcul (Sheet1). Codul VBA este, de obicei, nu este necesar pentru a selecta obiecte înainte de a lucra cu ei, chiar dacă aceasta se face cu reportofonul macro. Cu alte cuvinte, această linie de cod este redundant, deci prea poate fi îndepărtat.
Ultima linie a macro înregistrată schimbă proprietatea „Name“ membru Foaia1 al colecției Foi de calcul. Această linie pentru a salva.
După efectuarea unor modificări ale codului înregistrat ar trebui să arate acest lucru.
Executarea cartea care conține codul pentru foi cu celula B1 martor, duce la eroare, deoarece valoarea benzii goală Valoarea Intervalul este setat la „“ (șir gol), care nu este o foaie de nume valid. Este timpul pentru a crea unele mostre de date. Ia trei foi de cărți similare cu cele prezentate în figura următoare, și apoi executați macro.
Figura 4. Exemplu de date pentru RenameWorksheets macro
Numele foii se va schimba în mod corespunzător.
Verificați celulele goale
După cum sa menționat anterior, rezultatele macro într-o eroare dacă oricare dintre B1 celule cărții este gol. În loc să verificați manual fiecare foaie este posibil de a programa un macro, astfel încât aceste acțiuni au fost efectuate în ea. Înainte de linia de myWorksheet.Name adăugați următoarea linie de cod.
însemn <> înseamnă „nu sunt egale“, și ghilimele cu nimic între, reprezintă un șir de caractere de text gol, atunci există o absență completă a textului. În consecință, toate liniile de cod între If și End În cazul în care sunt executate numai în cazul în care valoarea în celula B1 nu este gol, adică, în cazul în care B1 celulă conține textul.
Pentru mai multe informații despre declarația Dacă ... Atunci vezi. În manualul de referință pe limba VBA. (Numele complet al secțiunii - „Dacă ... Atunci ... ELSE“ (Dacă manual ... Atunci ... Else), unde altundeva. - este o componentă opțională)
Pentru a testa macro, redenumi foi înapoi în Sheet1. Foaie2 și Sheet3 și șterge conținutul celulei B1 pe una sau mai multe coli. Urmați macro pentru a verifica dacă acesta redenumește foile cu textul din celula B1, și lasă intacte foile rămase. Macro-ul funcționează pentru orice număr de foi, cu orice combinație de celule B1 complete și goale.
Importanța de a fi deschis
O modalitate buna de a învăța de programare în general și, în special, Excel VBA este o strategie în care trebuie mai întâi ceva pentru a încerca să facă să funcționeze, și apoi întrebați-vă întrebări, cum ar fi următoarele:
Ce se poate încerca din nou?
Ce trebuie să învețe mai întâi să utilizați VBA după cum este necesar?
Ce ar putea fi mai distractiv sau interesant de știut?
Ce altceva poate fi interesant?
dorinta cititorului de a ști care drumurile duc la cunoaștere, încurajat.
Aceasta este o programare comună model în VBA. În primul rând, se creează un obiect care este atribuit variabilei, și apoi să efectueze o acțiune cu structura obiectului utilizat cu ... Cu End. Codul exemplu Diagrama arată datele utilizate ca selecția curentă. (Selection - Aceasta valoare metoda Sursa SetSourceData mai degrabă decât valoarea obiectului, astfel necesită sintaxa VBA folosite pentru a atribui valori colon și semnul egal (=), în loc de pur și simplu semnul egal (=).).
Tastați câteva numere în celulele A1: A5, selectați celulele și apoi executați macro. Graficul este deschis ca un grafic de bare, care este tipul implicit.
Figura 5 Diagramă cu bare create cu VBA
În cazul în care graficul de bare nu este potrivit, puteți schimba tipul de diagramă, utilizând un cod similar cu următorul.
xlPie - este un exemplu de built-in constante, de asemenea, numit un tip constant enumerat. În Excel, o mulțime de aceste constante, iar acestea sunt complet documentate. Pentru mai multe informații despre constantele încorporate, vezi. Secțiunea „Enumerări“ (transferul) unui manual pe modelul de obiect. De exemplu, constantele pentru tipurile de diagramă sunt listate sub „XlChartType Enumerarea“ (transfer de XlChartType).
Asigurați-vă că celulele A1: A5 este încă selectat, introduceți numărul în caseta de intrare, și apoi faceți clic pe OK. Codul salvează și închide cartea. Deschideți-l din nou și să acorde o atenție la schimbările din diagrama circulară.
formulare personalizate
Introducere în Excel VBA este finalizată în această secțiune o scurtă trecere în revistă a formelor personalizate.
Vor fi două ferestre. Una dintre ele este de a crea un formular personalizat, iar cealaltă, trusa de instrumente. Acesta arată diferitele controale care pot fi adăugate într-o formă particularizată, cum ar fi butoanele de comandă, butoane radio, casetele de selectare, și așa mai departe. D. Pentru a vedea tipul unui element de control generat Toolbox. treceți cursorul mouse-ului.
Deschide Sub rutină. Este procedura de eveniment schelet. realizată atunci când are loc un anumit eveniment. În acest caz, după cum numele subrutină Sub. un eveniment care declanșează codul, evenimentul este butonul Faceți clic pe CommandButton1. Adăugați procedura eveniment în linia următoare.