- 08/14/2019
- 25 de minute pentru a citi
-
- o
- R
- L
- m
- O
-
+4
Esti confruntă cu un repetitive curat de cincizeci de tabele în Word? Doriți ca un anumit document să solicite utilizatorului introducerea atunci când se deschide?, Aveți dificultăți în a afla cum să obțineți contactele dvs. din Microsoft Outlook într-o foaie de calcul Microsoft Excel în mod eficient?puteți efectua aceste sarcini și puteți realiza mult mai mult folosind Visual Basic for Applications (VBA) pentru Office—un limbaj de programare simplu, dar puternic, pe care îl puteți utiliza pentru a extinde aplicațiile Office.acest articol este destinat utilizatorilor cu experiență Office care doresc să învețe despre VBA și care doresc o perspectivă asupra modului în care programarea îi poate ajuta să personalizeze Office.suita de aplicații Office are un set bogat de caracteristici., Există mai multe moduri diferite de autor, format, și manipula documente, e-mail, baze de date, formulare, foi de calcul, și prezentări. Marea putere a programării VBA în Office este că aproape fiecare operație pe care o puteți efectua cu un mouse, tastatură sau o casetă de dialog se poate face și prin utilizarea VBA. Mai mult, dacă se poate face o dată cu VBA, se poate face la fel de ușor de o sută de ori. (De fapt, automatizarea sarcinilor repetitive este una dintre cele mai frecvente utilizări ale VBA în birou.,dincolo de puterea de scripting VBA pentru a accelera sarcinile de zi cu zi, puteți utiliza VBA pentru a adăuga noi funcționalități la aplicații de birou sau pentru a solicita și de a interacționa cu utilizatorul documentelor în moduri care sunt specifice pentru nevoile dvs. de afaceri. De exemplu, puteți scrie un cod VBA care afișează un mesaj pop-up care reamintește utilizatorilor să salveze un document pe o anumită unitate de rețea prima dată când încearcă să-l salveze.acest articol explorează câteva dintre motivele principale pentru a profita de puterea programării VBA., Acesta explorează limba VBA și instrumentele out-of-the-box pe care le puteți utiliza pentru a lucra cu soluțiile dvs. În cele din urmă, include câteva sfaturi și modalități de a evita unele frustrări comune de programare și greșeli.
notă
vă interesează dezvoltarea de soluții care extind experiența Office pe mai multe platforme? Consultați noul model de Add-in-uri Office. Add-in-urile Office au o amprentă mică în comparație cu Add-In-urile și soluțiile VSTO și le puteți construi folosind aproape orice tehnologie de programare web, cum ar fi HTML5, JavaScript, CSS3 și XML.,
când să utilizați VBA și de ce
există mai multe motive principale pentru a lua în considerare programarea VBA în birou.
automatizare și repetiție
VBA este eficientă și eficientă atunci când vine vorba de soluții repetitive la probleme de formatare sau corectare. De exemplu, ați schimbat vreodată stilul paragrafului din partea de sus a fiecărei pagini în Word? Ați avut vreodată să reformatați mai multe tabele care au fost lipite din Excel într-un document Word sau într-un e-mail Outlook? Ați avut vreodată să facă aceeași schimbare în mai multe contacte Outlook?,dacă aveți o schimbare pe care trebuie să o faceți de mai mult de zece sau douăzeci de ori, poate merită să o automatizați cu VBA. Dacă este o schimbare pe care trebuie să o faceți de sute de ori, cu siguranță merită luată în considerare. Aproape orice modificare de formatare sau editare pe care o puteți face manual, se poate face în VBA.există momente în care doriți să încurajați sau să obligați utilizatorii să interacționeze cu aplicația sau documentul Office într-un anumit mod care nu face parte din aplicația standard., De exemplu, este posibil să doriți să solicitați utilizatorilor să întreprindă o anumită acțiune atunci când deschid, Salvează sau imprimă un document.aveți nevoie să copiați toate contactele dvs. din Outlook în Word și apoi să le formatați într-un anumit mod? Sau trebuie să mutați datele din Excel într-un set de diapozitive PowerPoint? Uneori, simpla copiere și lipire nu face ceea ce doriți să facă, sau este prea lent., Puteți utiliza programarea VBA pentru a interacționa cu detaliile a două sau mai multe aplicații Office în același timp și apoi puteți modifica conținutul dintr-o aplicație pe baza conținutului din alta.programarea VBA este o soluție puternică, dar nu este întotdeauna abordarea optimă. Uneori este logic să folosiți alte modalități pentru a vă atinge obiectivele.
întrebarea critică de pus este dacă există o cale mai ușoară. Înainte de a începe un proiect VBA, luați în considerare instrumentele încorporate și funcționalitățile standard., De exemplu, dacă aveți o sarcină de editare sau aspect care necesită mult timp, luați în considerare utilizarea stilurilor sau tastelor de accelerație pentru a rezolva problema. Puteți efectua sarcina o dată și apoi utilizați CTRL + Y (Refaceți) pentru ao repeta? Puteți crea un document nou cu formatul sau șablonul corect și apoi să copiați conținutul în acel document nou?aplicațiile Office sunt puternice; soluția de care aveți nevoie poate fi deja acolo. Luați ceva timp pentru a afla mai multe despre Office înainte de a trece la programare.înainte de a începe un proiect VBA, asigurați-vă că aveți timp să lucrați cu VBA., Programarea necesită concentrare și poate fi imprevizibilă. Mai ales ca începător, nu apelați niciodată la programare decât dacă aveți timp să lucrați cu atenție. Încercarea de a scrie un „script rapid” pentru a rezolva o problemă atunci când un termen limită poate duce la o situație foarte stresantă. Dacă vă grăbiți, este posibil să doriți să utilizați metode convenționale, chiar dacă acestea sunt monotone și repetitive.
programare VBA 101
folosind codul pentru a face aplicațiile să facă lucruri
ați putea crede că scrierea codului este misterioasă sau dificilă, dar principiile de bază folosesc raționamentul zilnic și sunt destul de accesibile., Aplicațiile Microsoft Office sunt create astfel încât să expună lucruri numite obiecte care pot primi instrucțiuni, în același mod în care un telefon este proiectat cu butoane pe care le utilizați pentru a interacționa cu telefonul. Când apăsați un buton, telefonul recunoaște instrucțiunea și include numărul corespunzător în secvența pe care o formați. În programare, interacționați cu aplicația trimițând instrucțiuni către diverse obiecte din aplicație. Aceste obiecte sunt expansive, dar au limitele lor., Ei pot face doar ceea ce sunt concepute pentru a face, și ei vor face doar ceea ce le instrui să facă.de exemplu, luați în considerare utilizatorul care deschide un document în Word, face câteva modificări, salvează documentul și apoi îl închide. În lumea programării VBA, Word expune un obiect Document. Utilizând codul VBA, puteți instrui obiectul documentului să facă lucruri precum Deschidere, Salvare sau Închidere.
următoarea secțiune discută modul în care obiectele sunt organizate și descrise.,
modelul de obiect
dezvoltatorii organizează obiecte de programare într-o ierarhie, iar acea ierarhie se numește modelul de obiect al aplicației. Word, de exemplu, are un obiect de aplicație de nivel superior care conține un obiect Document. Obiectul documentului conține obiecte de paragraf și așa mai departe. Modelele de obiecte reflectă aproximativ ceea ce vedeți în interfața cu utilizatorul. Ele sunt o hartă conceptuală a aplicației și a capacităților acesteia.
definiția unui obiect se numește clasă, astfel încât este posibil ca acești doi termeni să fie folosiți interschimbabil., Din punct de vedere tehnic, o clasă este descrierea sau șablonul care este utilizat pentru a crea sau instantia un obiect.odată ce un obiect există, îl puteți manipula setându-i proprietățile și apelând metodele sale. Dacă vă gândiți la obiect ca un substantiv, proprietățile sunt adjectivele care descriu substantivul, iar metodele sunt verbele care animă substantivul. Schimbarea unei proprietăți schimbă o anumită calitate a aspectului sau comportamentului obiectului. Apelarea uneia dintre metodele obiectului determină obiectul să efectueze o anumită acțiune.,codul VBA din acest articol rulează împotriva unei aplicații open Office în care multe dintre obiectele pe care codul le manipulează sunt deja în funcțiune; de exemplu, aplicația în sine, foaia de lucru din Excel, documentul din Word, prezentarea în PowerPoint, Explorer și Folder obiecte în Outlook. Odată ce cunoașteți aspectul de bază al modelului de obiect și unele proprietăți cheie ale aplicației care oferă acces la starea sa actuală, puteți începe să extindeți și să manipulați aplicația Office cu VBA în Office.,
metode
în Word, de exemplu, puteți modifica proprietățile și invoca metodele documentului Word curent utilizând proprietatea ActiveDocument a obiectului aplicației. Această proprietate ActiveDocument returnează o referință la obiectul Document care este activ în prezent în aplicația Word. „Returnează o referință la „înseamnă” vă oferă acces la.”
următorul cod face exact ceea ce spune; adică salvează documentul activ în aplicație.,
Application.ActiveDocument.Save
Citeste codul de la stânga la dreapta, „În această Cerere, cu Documentul de referință de către ActiveDocument, invoca metoda de Salvare.”Fiți conștienți de faptul că Save este cea mai simplă formă de metodă; nu necesită instrucțiuni detaliate de la dvs. Instrui un obiect Document pentru a salva și nu are nevoie de nici mai mult de intrare de la tine.dacă o metodă necesită mai multe informații, aceste detalii se numesc parametri. Următorul cod rulează metoda SaveAs, care necesită un nou nume pentru fișier.,
Application.ActiveDocument.SaveAs ("New Document Name.docx")
Valorile enumerate în paranteze după un nume de metodă sunt parametrii. Aici, noul nume pentru fișier este un parametru pentru metoda SaveAs.
proprietăți
utilizați aceeași sintaxă pentru a seta o proprietate pe care o utilizați pentru a citi o proprietate. Următorul cod execută o metodă pentru a selecta celula A1 în Excel și apoi pentru a seta o proprietate pentru a pune ceva în acea celulă.
Application.ActiveSheet.Range("A1").Select Application.Selection.Value = "Hello World"
prima provocare în programarea VBA este de a obține un sentiment pentru modelul de obiect al fiecărei aplicații Office și de a citi sintaxa obiectului, metodei și proprietății., Modelele de obiecte sunt similare în toate aplicațiile de birou, dar fiecare este specific tipului de documente și obiecte pe care le manipulează.
în prima linie a fragmentului de cod, există obiectul aplicației, Excel de data aceasta și apoi ActiveSheet, care oferă acces la foaia de lucru activă. După aceea este un termen care nu este la fel de familiar, interval, ceea ce înseamnă „definiți o gamă de celule în acest fel.”Codul instruiește Gama să se creeze cu doar A1 ca set definit de celule. Cu alte cuvinte, prima linie de cod definește un obiect, intervalul și rulează o metodă împotriva acestuia pentru a-l selecta., Rezultatul este stocat automat într-o altă proprietate a aplicației numită selecție.
a doua linie de cod stabilește proprietatea valorii selecției la textul „Hello World”, iar acea valoare apare în celula A1.
cel mai simplu cod VBA pe care îl scrieți poate obține pur și simplu acces la obiectele din aplicația Office cu care lucrați și poate seta proprietăți. De exemplu, puteți obține acces la rândurile dintr-un tabel din Word și puteți schimba formatarea acestora în scriptul VBA.,
sună simplu, dar poate fi incredibil de util; odată ce puteți scrie acel cod, puteți valorifica toată puterea programării pentru a face aceleași modificări în mai multe tabele sau documente sau pentru a le face în funcție de o anumită logică sau condiție. Pentru un computer, efectuarea a 1000 de modificări nu este diferită de realizarea a 10, deci există o economie de scară aici, cu documente și probleme mai mari, și aici VBA poate străluci cu adevărat și vă poate economisi timp.,
Macrocomenzi și editorul Visual Basic
acum că știți ceva despre modul în care aplicațiile Office își expun modelele de obiecte, probabil că sunteți dornici să încercați să apelați metode de obiecte, să setați proprietățile obiectelor și să răspundeți la evenimente obiect. Pentru a face acest lucru, trebuie să vă scrieți codul într-un loc și într-un mod pe care Office îl poate înțelege; de obicei, folosind editorul Visual Basic. Deși este instalat în mod implicit, mulți utilizatori nu știu că este chiar disponibil până când nu este activat pe panglică.toate aplicațiile de birou folosesc panglica., O filă din panglică este fila Dezvoltator, unde accesați editorul Visual Basic și alte instrumente pentru dezvoltatori. Deoarece Office nu afișează implicit fila Dezvoltator, trebuie să o activați utilizând următoarea procedură:
pentru a activa fila Dezvoltator
-
În fila Fișier, alegeți opțiuni pentru a deschide caseta de dialog Opțiuni.
-
Alegeți Personalizați panglica din partea stângă a casetei de dialog.
-
sub Alegeți comenzi din partea stângă a casetei de dialog, selectați Comenzi populare.,
-
sub Personalizați panglica din partea dreaptă a casetei de dialog, selectați filele principale din caseta listă derulantă, apoi bifați caseta de selectare Dezvoltator.
-
alegeți OK.în Office 2007, ați afișat fila Dezvoltator alegând butonul Office, alegând opțiuni, apoi selectând afișați fila dezvoltator în Panglică caseta de selectare din categoria populară a casetei de dialog Opțiuni.după ce activați fila dezvoltator, este ușor să găsiți butoanele Visual Basic și macrocomenzi.figura 1., Butoane din fila Dezvoltator
probleme de securitate
pentru a proteja utilizatorii Office împotriva virușilor și a codului macro periculos, nu puteți salva codul macro într-un document Office Standard care utilizează o extensie de fișier standard. În schimb, trebuie să salvați codul într-un fișier cu o extensie specială. De exemplu, nu puteți salva macrocomenzi într-un document Word standard cu a .extensie docx; în schimb, trebuie să utilizați un document special Word Macro-activat cu un .extensie docm.
când deschideți un .,fișier docm, Office security ar putea împiedica în continuare rularea macrocomenzilor din document, cu sau fără a vă spune. Examinați setările și opțiunile din Centrul de încredere pentru toate aplicațiile Office. Setarea implicită dezactivează rularea macro, dar vă avertizează că macrocomenzile au fost dezactivate și vă oferă opțiunea de a le activa din nou pentru acel document.
puteți desemna foldere specifice în care macro-urile pot rula prin crearea locațiilor de încredere, a documentelor de încredere sau a editorilor de încredere., Cea mai portabilă opțiune este utilizarea editorilor de încredere, care funcționează cu documente semnate digital pe care le distribuiți. Pentru mai multe informații despre setările de securitate dintr-o anumită aplicație Office, deschideți caseta de dialog Opțiuni, alegeți Trust Center, apoi alegeți Trust Center Settings.unele aplicații Office, cum ar fi Outlook, salvează macrocomenzile în mod implicit într-un șablon principal de pe computerul local., Deși această strategie reduce problemele locale de securitate de pe propriul computer atunci când executați propriile macro-uri, este nevoie de o strategie de implementare dacă doriți să distribuiți macro-ul.când alegeți butonul Macro din fila Dezvoltator, se deschide caseta de dialog macrocomenzi, care vă oferă acces la subrutine sau macrocomenzi VBA pe care le puteți accesa dintr-un anumit document sau aplicație. Butonul Visual Basic deschide Editorul Visual Basic, unde creați și editați codul VBA.,un alt buton din fila dezvoltator din Word și Excel este butonul Record Macro, care generează automat cod VBA care poate reproduce acțiunile pe care le efectuați în aplicație. Record Macro este un instrument teribil pe care le puteți utiliza pentru a afla mai multe despre VBA. Citirea codului generat vă poate oferi o perspectivă asupra VBA și poate oferi o punte stabilă între cunoștințele dvs. despre Office ca utilizator și cunoștințele dvs. de programator., Singurul avertisment este că codul generat poate fi confuz, deoarece editorul Macro trebuie să facă unele presupuneri despre intențiile dvs., iar aceste ipoteze nu sunt neapărat exacte.
pentru a înregistra o macrocomandă
-
deschideți Excel într-un nou registru de lucru și alegeți fila dezvoltator din panglică. Alegeți înregistrare Macro și acceptați toate setările implicite din caseta de dialog înregistrare Macro, inclusiv Macro1 ca nume al macro-ului și acest registru de lucru ca locație.
-
alegeți OK pentru a începe înregistrarea macro-ului. Rețineți Cum se schimbă textul butonului pentru a opri înregistrarea., Alegeți acel buton în momentul în care finalizați acțiunile pe care doriți să le înregistrați.
-
alegeți celula B1 și tastați primul șir clasic al programatorului: Hello World. Nu mai tastați și uitați-vă la butonul de oprire a înregistrării; este gri, deoarece Excel vă așteaptă să terminați tastarea valorii în celulă.
-
alegeți celula B2 pentru a finaliza acțiunea din celula B1, apoi alegeți Opriți înregistrarea.
-
alegeți macrocomenzi în fila dezvoltator, selectați Macro1 dacă nu este selectată, apoi alegeți Editare pentru a vizualiza codul din Macro1 în Editorul Visual Basic.,figura 2. Cod Macro În Visual Basic Editor
privind Codul
macro-ul pe care l-ați creat ar trebui să arate similar cu următorul cod.
Sub Macro1()'' Macro1 Macro'' Range("B1").Select ActiveCell.FormulaR1C1 = "Hello World" Range("B2").SelectEnd Sub
fiți conștienți de asemănările cu fragmentul de cod anterior care a selectat textul în celula A1 și de diferențele. În acest cod, este selectată celula B1, iar apoi șirul „Hello World” este aplicat celulei care a fost activată. Ghilimelele din jurul textului specifică o valoare șir, spre deosebire de o valoare numerică.,
amintiți-vă cum ați ales celula B2 pentru a afișa din nou butonul de oprire a înregistrării? Această acțiune apare ca o linie de cod, de asemenea. Macro recorder înregistrează fiecare apăsare de tastă.
liniile de cod care încep cu un apostrof și colorate verde de către editor sunt comentarii care explică codul sau vă reamintesc și altor programatori scopul codului. VBA ignoră orice linie, sau porțiune a unei linii, care începe cu un singur citat. Scrierea de comentarii clare și adecvate în codul dvs. este un subiect important, dar această discuție este în afara domeniului de aplicare al acestui articol., Referințele ulterioare la acest cod din articol nu includ acele patru rânduri de comentarii.când macro recorder generează codul, utilizează un algoritm complex pentru a determina metodele și proprietățile pe care le-ați intenționat. Dacă nu recunoașteți o anumită proprietate, există multe resurse disponibile pentru a vă ajuta. De exemplu, în macro-ul pe care l-ați înregistrat, macro recorder a generat codul care se referă la proprietatea FormulaR1C1. Nu ești sigur ce înseamnă asta?rețineți că obiectul aplicației este implicat în toate macrocomenzile VBA., Codul pe care l-ați înregistrat funcționează cu aplicația. la începutul fiecărei linii.
folosind ajutor pentru dezvoltatori
selectați FormulaR1C1 în macro-ul înregistrat și apăsați F1. Sistemul de ajutor rulează o căutare rapidă, stabilește că subiectele corespunzătoare se află în secțiunea Excel Developer din Excel Help și listează proprietatea FormulaR1C1. Puteți alege linkul pentru a citi mai multe despre proprietate, dar înainte de a face acest lucru, fiți conștienți de linkul de referință al modelului de obiect Excel din partea de jos a ferestrei., Alegeți linkul pentru a vizualiza o listă lungă de obiecte pe care Excel le utilizează în modelul său de obiect pentru a descrie foile de lucru și componentele acestora.
Alegeți oricare dintre acestea pentru a vedea proprietățile și metodele care se aplică obiectului respectiv, împreună cu referințe încrucișate la diferite opțiuni conexe. Multe intrări de ajutor au, de asemenea, exemple de cod scurte care vă pot ajuta. De exemplu, puteți urmări legăturile din obiectul frontiere pentru a vedea cum să setați o graniță în VBA.
Worksheets(1).Range("A1").Borders.LineStyle = xlDouble
editarea codului
Codul De borduri arată diferit de macro-ul înregistrat., Un lucru care poate fi confuz cu un model de obiect este că există mai multe modalități de a aborda orice obiect dat, celula A1 în acest exemplu.uneori, cel mai bun mod de a învăța programarea este de a face modificări minore la un cod de lucru și de a vedea ce se întâmplă ca rezultat. Încearcă acum. Deschideți Macro1 în Editorul Visual Basic și schimbați codul în următorul.
Sub Macro1() Worksheets(1).Range("A1").Value = "Wow!" Worksheets(1).Range("A1").Borders.LineStyle = xlDoubleEnd Sub
sfat
utilizați Copy și Paste cât mai mult posibil atunci când se lucrează cu cod pentru a evita erorile de tastare.,nu este necesar să salvați codul pentru a-l încerca, așa că reveniți la documentul Excel, alegeți macrocomenzi în fila Dezvoltator, alegeți Macro1, apoi alegeți executare. Celula A1 conține acum textul Wow! și are o graniță dublă în jurul ei.figura 3. Rezultatele primei macro
tocmai ați combinat înregistrarea macro, citirea documentației modelului obiectului și programarea simplă pentru a face un program VBA care face ceva. Felicitări!
nu a funcționat? Citiți mai departe pentru sugestii de depanare în VBA.,
sfaturi și trucuri de programare
începeți cu exemple
comunitatea VBA este foarte mare; o căutare pe Web poate produce aproape întotdeauna un exemplu de cod VBA care face ceva similar cu ceea ce doriți să faceți. Dacă nu puteți găsi un exemplu bun, încercați să împărțiți sarcina în unități mai mici și să căutați pe fiecare dintre acestea sau încercați să vă gândiți la o problemă mai frecventă, dar similară. Începând cu un exemplu, puteți economisi ore de timp.
asta nu înseamnă că codul gratuit și bine gândit Este pe Web care vă așteaptă să veniți., De fapt, o parte din codul pe care îl găsiți ar putea avea bug-uri sau greșeli. Ideea este că exemplele pe care le găsiți online sau în documentația VBA vă oferă un început. Amintiți-vă că programarea învățării necesită timp și gândire. Înainte de a vă grăbi să utilizați o altă soluție pentru a vă rezolva problema, întrebați-vă dacă VBA este alegerea potrivită pentru această problemă.
faceți o problemă mai simplă
programarea poate deveni complexă rapid. Este esențial, mai ales ca începător, să spargeți problema până la cele mai mici unități logice posibile, apoi să scrieți și să testați fiecare piesă în mod izolat., Dacă aveți prea mult cod în fața dvs. și vă confundați sau încurcați, opriți-vă și lăsați problema deoparte. Când reveniți la problemă, copiați o mică bucată din problemă într-un modul nou, rezolvați acea piesă, faceți Codul să funcționeze și testați-l pentru a vă asigura că funcționează. Apoi treceți la următoarea parte.există două tipuri principale de erori de programare: erori de sintaxă, care încalcă regulile gramaticale ale limbajului de programare și erori de rulare, care arată corect din punct de vedere sintactic, dar nu reușesc atunci când VBA încearcă să execute codul.,
deși pot fi frustrante de remediat, erorile de sintaxă sunt ușor de prins; editorul Visual Basic emite un semnal sonor și clipește la dvs. dacă tastați o eroare de sintaxă în codul dvs.
de exemplu, valorile șirului trebuie să fie înconjurate de ghilimele duble în VBA. Pentru a afla ce se întâmplă atunci când utilizați citate unice în schimb, reveniți la editorul Visual Basic și înlocuiți ” Wow!”string în exemplul de cod cu” Wow!”(adică cuvântul Wow inclus în ghilimele unice). Dacă alegeți linia următoare, editorul Visual Basic reacționează., Eroarea „Compile error: Expected: expression” nu este atât de utilă, dar linia care generează eroarea devine roșie pentru a vă spune că aveți o eroare de sintaxă în acea linie și, ca urmare, acest program nu va rula.
alegeți OK și schimbați textul înapoi la ” Wow!”.
erorile de execuție sunt mai greu de prins, deoarece sintaxa de programare pare corectă, dar codul eșuează atunci când VBA încearcă să o execute.,de exemplu, deschideți Editorul Visual Basic și schimbați numele proprietății Value în ValueX în Macro, introducând în mod deliberat o eroare de rulare, deoarece obiectul Range nu are o proprietate numită ValueX. Reveniți la documentul Excel, deschideți caseta de dialog Macrocomenzi și rulați din nou Macro1. Ar trebui să vedeți o casetă de mesaj Visual Basic care explică eroarea run-time cu textul, ” obiectul nu acceptă această proprietate a metodei.”Deși acest text este clar, alegeți Debug pentru a afla mai multe.,când reveniți la editorul Visual Basic, acesta se află într-un mod special de depanare care utilizează o evidențiere galbenă pentru a vă arăta linia de cod care a eșuat. După cum era de așteptat, linia care include proprietatea ValueX este evidențiată.
puteți face modificări la codul VBA care rulează, deci schimbați ValueX înapoi la valoare și alegeți butonul mic de redare verde de sub meniul de depanare. Programul ar trebui să ruleze din nou normal.este o idee bună să învățați cum să utilizați depanatorul mai deliberat pentru programe mai lungi și mai complexe., La un nivel minim, învăța cum să setați break-puncte pentru a opri executarea la un punct în cazul în care doriți să ia o privire la codul, cum de a adăuga ceasuri pentru a vedea valorile de variabile diferite și proprietăți ca codul se execută, și cum să pas prin cod de linie. Aceste opțiuni sunt disponibile în meniul de depanare, iar utilizatorii serioși de depanare memorează de obicei comenzile rapide de la tastatură însoțitoare.,pentru a deschide referința dezvoltatorului care este încorporată în Office Help, deschideți referința de ajutor din orice aplicație Office alegând semnul de întrebare din panglică sau apăsând F1. Apoi, în dreapta butonului Căutare, alegeți săgeata verticală pentru a filtra conținutul. Alegeți Referința Dezvoltatorului. Dacă nu vedeți cuprinsul în panoul din stânga, alegeți pictograma cărții mici pentru a o deschide, apoi extindeți referința modelului obiectului de acolo.figura 5., Filtrarea pe ajutor pentru dezvoltatori se aplică tuturor aplicațiilor Office
timpul petrecut navigând referința modelului obiectului plătește. După ce înțelegeți elementele de bază ale sintaxei VBA și modelul de obiect pentru aplicația Office cu care lucrați, avansați de la presupuneri la programare metodică.desigur, Microsoft Office Developer Center este un portal excelent pentru articole, sfaturi și informații despre comunitate.,toți programatorii se blochează uneori, chiar și după ce citesc fiecare articol de referință pe care îl pot găsi și își pierd somnul noaptea gândindu-se la diferite modalități de a rezolva o problemă. Din fericire, Internetul a încurajat o comunitate de dezvoltatori care se ajută reciproc să rezolve problemele de programare.orice căutare pe Web pentru „Office developer forum” dezvăluie mai multe grupuri de discuții. Puteți căuta pe „office development” sau o descriere a problemei dvs. pentru a descoperi forumuri, postări pe blog și articole.,dacă ați făcut tot ce puteți pentru a rezolva o problemă, nu vă fie teamă să postați întrebarea dvs. pe un forum pentru dezvoltatori. Aceste forumuri sunt binevenite de la programatori mai noi și mulți dintre dezvoltatorii experimentați sunt bucuroși să vă ajute.
următoarele sunt câteva puncte de etichetă care trebuie urmate atunci când postați pe un forum pentru dezvoltatori:
-
înainte de a posta, căutați pe site un FAQ sau instrucțiuni pe care membrii doresc să le urmați. Asigurați-vă că postați conținut care este în concordanță cu aceste linii directoare și în secțiunea corectă a forumului.,
-
Include un eșantion de cod clar și complet și ia în considerare editarea codului pentru a-l clarifica pentru alții dacă face parte dintr-o secțiune mai lungă de cod.descrieți problema în mod clar și concis și rezumați pașii pe care i-ați făcut pentru a rezolva problema. Luați-vă timp pentru a vă scrie postarea cât de bine puteți, mai ales dacă sunteți agitat sau în grabă. Prezentați situația într-un mod care va avea sens cititorilor prima dată când au citit Declarația problemei.fii politicos și exprimă-ți aprecierea.,
Mergând mai departe cu programarea
deși acest articol este scurt și doar zgârie suprafața VBA și programarea, sperăm că este suficient pentru a vă începe.
această secțiune discută pe scurt câteva subiecte cheie.
variabile
în exemplele simple din acest articol ați manipulat obiecte pe care aplicația le-a creat deja. Poate doriți să vă creați propriile obiecte pentru a stoca valori sau referințe la alte obiecte pentru utilizare temporară în aplicația dvs. Acestea se numesc variabile.,
pentru a utiliza o variabilă în VBA, trebuie să spun VBA ce tip de obiect variabila reprezintă folosind instrucțiunea Dim. Apoi setați valoarea și să-l utilizați pentru a seta alte variabile sau proprietăți.
Dim MyStringVariable As String MyStringVariable = "Wow!" Worksheets(1).Range("A1").Value = MyStringVariable
ramificare și buclă
programele simple din acest articol execută o linie la un moment dat, de sus în jos. Puterea reală în programare provine din opțiunile pe care trebuie să le determinați ce linii de cod să executați, pe baza uneia sau mai multor condiții pe care le specificați. Puteți extinde aceste capacități și mai mult atunci când puteți repeta o operație de mai multe ori., De exemplu, următorul cod extinde Macro1.
tastați sau lipiți codul în Editorul Visual Basic și apoi executați-l. Urmați instrucțiunile din caseta de mesaje care apare și schimbați textul din celula A1 de la Wow! pentru a da! și rulați-l din nou pentru a vedea puterea de looping. Acest fragment de cod demonstrează variabile, ramificare și looping. Citiți-l cu atenție după ce îl vedeți în acțiune și încercați să determinați ce se întâmplă pe măsură ce fiecare linie execută.
toate aplicațiile mele Office: exemplu de cod
iată câteva scripturi de încercat; fiecare rezolvă o problemă de birou din lumea reală.,
creați un e-mail în Outlook
Sub MakeMessage() Dim OutlookMessage As Outlook.MailItem Set OutlookMessage = Application.CreateItem(olMailItem) OutlookMessage.Subject = "Hello World!" OutlookMessage.Display Set OutlookMessage = NothingEnd Sub
rețineți că există situații în care ați putea dori să automatizați e-mailul în Outlook; puteți utiliza și șabloane.
ștergeți rândurile goale dintr-o foaie de lucru Excel
rețineți că puteți selecta o coloană de celule și puteți rula această macrocomandă pentru a șterge toate rândurile din coloana selectată care au o celulă necompletată.
ștergeți casetele de text goale din PowerPoint
Sub RemoveEmptyTextBoxes() Dim SlideObj As Slide Dim ShapeObj As Shape Dim ShapeIndex As Integer For Each SlideObj In ActivePresentation.Slides For ShapeIndex = SlideObj.Shapes.Count To 1 Step -1 Set ShapeObj = SlideObj.Shapes(ShapeIndex) If ShapeObj.Type = msoTextBox Then If Trim(ShapeObj.TextFrame.TextRange.Text) = "" Then ShapeObj.Delete End If End If Next ShapeIndex Next SlideObjEnd Sub
fiți conștienți de faptul că acest cod bucle prin toate diapozitivele și șterge toate casetele de text care nu au nici un text., Variabila count scade în loc de incremente, deoarece de fiecare dată când codul șterge un obiect, elimină acel obiect din colecție, ceea ce reduce numărul.
copiați un contact din Outlook în Word
Sub CopyCurrentContact() Dim OutlookObj As Object Dim InspectorObj As Object Dim ItemObj As Object Set OutlookObj = CreateObject("Outlook.Application") Set InspectorObj = OutlookObj.ActiveInspector Set ItemObj = InspectorObj.CurrentItem Application.ActiveDocument.Range.InsertAfter (ItemObj.FullName & " from " & ItemObj.CompanyName)End Sub
rețineți că acest cod copiază contactul deschis în Outlook în documentul Word deschis. Acest cod funcționează numai dacă există un contact deschis în prezent pentru inspecție în Outlook.
suport și feedback
aveți întrebări sau feedback despre Office VBA sau această documentație?, Consultați asistența și feedback-ul Office VBA pentru îndrumări cu privire la modalitățile prin care puteți primi asistență și oferi feedback.
-
-