Visual Basic pentru aplicații | |
Data primei versiuni | 1993 |
---|---|
Paradigmă | Imperativ , bazat pe evenimente |
Dezvoltator | Microsoft |
Ultima versiune | 7.1.1100 ( Office 2013 ) |
Tastare | Hibrid static / dinamic |
Influențată de | Visual Basic |
Licență | Software proprietar |
Visual Basic for Applications ( VBA ) este o implementare a Microsoft Visual Basic care este integrată în toate aplicațiile Microsoft Office , în alte aplicații Microsoft precum Visio și cel puțin parțial în alte aplicații precum AutoCAD , WordPerfect , MicroStation , Solidworks sau chiar ArcGIS . Înlocuiește și extinde capacitățile limbajelor macro specifice aplicațiilor mai vechi, cum ar fi limbajul WordBasic încorporat într-o versiune mai veche a software-ului Word și poate fi utilizat pentru a controla aproape toate HMIa aplicațiilor gazdă , inclusiv posibilitatea de a manipula funcționalitatea interfeței cu utilizatorul, cum ar fi meniurile, și de a personaliza dialogurile și formularele de utilizator.
După cum sugerează și numele, VBA este strâns legat de Visual Basic (sintaxa și conceptele ambelor limbi sunt similare), dar în mod normal poate rula codul doar într-o aplicație gazdă Microsoft Office (nu o aplicație autonomă). necesită o licență a suitei Microsoft Office). Cu toate acestea, poate fi utilizat pentru a controla o aplicație de la alta (de exemplu, creați automat un document Word din datele Excel ). Codul astfel executat este stocat în instanțe de documente, se mai numește macro.
VBA este bogat din punct de vedere funcțional și foarte flexibil, dar are limitări semnificative, cum ar fi funcțiile sale limitate de apel invers ( callbacks ) și o eroare de gestionare arhaică, folosind erori de handlers în locul unui mecanism de excepție .
Chiar dacă aceste limitări fac ca acest limbaj să fie foarte puțin folosit de dezvoltatorii de computere dornici să folosească mai presus de toate instrumentele puternice, simplitatea și ușurința de acces au atras anumite profesii, în special în domeniul finanțelor.
De cand 1 st iulie 2007, Microsoft nu mai distribuie licențele VBA noilor clienți pe măsură ce încearcă să le înlocuiască cu Visual Studio Tools for Applications (VSTA), un set de instrumente de personalizare a aplicațiilor bazat pe platforma .NET Framework . Din articolul lui D r eX:
„ Furnizorii de software vor folosi acum VSTA ca înlocuitor pentru VSA [Visual Studio for Applications], pentru a oferi funcționalități de personalizare în aplicațiile lor. [...] VSA a fost un client subțire , gestionat-server VBA alternativ, bazat pe Visual Studio. Abordarea pe server a fost văzută de editori ca fiind mai puțin utilă decât un model de client bogat , astfel încât, pe baza acestui feedback, Microsoft a început dezvoltarea VSTA. Unii editori folosesc în continuare VSA astăzi, dar valoarea acestuia este limitată. Unele dintre tehnologiile dezvoltate pentru VSA sunt incluse în VSTA. Personalizarea aplicației utilizând VSTA profită mai mult de funcționalitatea clientului bogată decât VSA, oferind un mediu extrem de optimizat atât pentru personalizarea aplicației client, cât și a serverului. "
„ (En) VSTA înlocuiește acum VSA [Visual Studio for Applications], deoarece tehnologia ISV-urilor o va folosi pentru a oferi capabilități de personalizare în aplicațiile lor. […] VSA a fost o alternativă la clientul subțire , bazată pe server, la VBA construit pe Visual Studio. Abordarea pe server a fost văzută de către ISV-uri ca fiind mai puțin utilă decât un model de client bogat, astfel încât, pe baza feedback-ului lor, Microsoft a început dezvoltarea VSTA. Există ISV-uri care folosesc cu succes VSA astăzi, dar am constatat că aplicabilitatea sa era limitată. O parte din tehnologia dezvoltată pentru VSA este încorporată în VSTA. Personalizarea aplicației VSTA profită mai mult de funcționalitatea clientului bogat decât VSA, oferind un mediu extrem de optimizat pentru personalizarea aplicației atât pe client, cât și pe server. "
Office 2007 continuă să utilizeze vechiul motor VBA; Cu toate acestea, Visual Studio Tools for Office (en) (VSTO) este disponibil. Suportul VBA în Microsoft Office pentru Mac a fost întrerupt odată cu lansarea versiunii 12 în 2008 și reintrodus în versiunea 2011. Vezi și VB.NET.
Prima versiune a VSTA a fost lansată înAprilie 2006și a fost integrat în diferite ISV-uri, inclusiv InfoPath 2007 și ABB Robotics. Următoarea versiune a VSTA (bazată pe Visual Studio 2008 cunoscută sub numele de „Orcas”) va fi distribuită cătreFebruarie 2008. A doua versiune a VSTA este foarte diferită de prima, cu caracteristici precum programarea dinamică și compatibilitatea WPF , WCF , WF , LINQ și .NET 3.5.
Cu toate acestea, datorită dependenței unor companii de VBA, VBA este încă disponibilă în Office 2007, 2010, 2013 și 2016 și 2019. Cea mai recentă versiune 7.1 este inclusă în Office 2013. Limbajul macro Excel 4, mai vechi decât VBA, este suportat, chiar și de cele mai recente versiuni de Excel.
Popularitatea incredibilă a Visual Basic după lansare a determinat Microsoft să includă o versiune simplificată în aplicațiile sale de birou pentru a înlocui diferitele limbaje macro. Cu toate acestea, după cum demonstrează cronologia, această schimbare a avut loc pe o perioadă lungă de timp.
Suportul minim VBA este disponibil și în OpenOffice.org , începând cu versiunea 3.0.
Recorderul macro din Microsoft Excel (fila Dezvoltator / Înregistrați o macro) vă permite să generați cu ușurință cod VBA într-o procedură.
Întreaga secvență de acțiune efectuată între începutul și sfârșitul înregistrării este înregistrată într-o procedură VBA, care poate fi reexecutată identic. Este posibil să modificați acest cod sau să programați direct în VBE (fila Dezvoltator / Visual Basic).
Aceasta este cea mai bună metodă de învățare a utilizării VBA pentru programatorii începători.
Mai întâi, înregistrăm o secvență apăsând butonul de înregistrare și apoi o putem rula pas cu pas (tasta F8) în instrumentul VBA pentru a cunoaște acțiunile efectuate de fiecare linie de cod.
Principalele colecții de obiecte din foaia de calcul Excel sunt Cartea de lucru (registrul de lucru), Foi de calcul ( foaia de calcul ) și Intervalul ( celulele intervalului ). Ele pot fi utilizate într-o ierarhie descendentă:
Odată ce un obiect este desemnat:
De referință Celulele pot fi:
Microsoft Excel vă permite să creați funcții personalizate programate în cod VBA și plasate într-un modul. Acestea sunt apoi accesibile în biblioteca de funcții (Insert / Function / Custom):
Function NomFonction (Argument1, Argument2 As TypeDonnées, Optional Argument3=valeur_defaut) …(actions programmées) NomFonction = valeur renvoyée End FunctionAceste funcții pot primi argumente de intrare, al căror tip poate fi specificat (Argument2 de mai sus) sau care poate fi opțional, cu o valoare implicită (Argument3 de mai sus). Din nou, procedura VBA poate fi utilizată pentru automatizarea oricărui tip de activitate în Microsoft Excel , rezultând o economie de timp și ușurință în utilizare.
În ceea ce privește Excel, înregistratorul de macrocomenzi din Microsoft Word (fila Dezvoltare / Macro nouă) vă permite să generați cu ușurință cod VBA într-o procedură.
Întreaga secvență de acțiune efectuată între începutul și sfârșitul înregistrării este înregistrată într-o procedură VBA, care poate fi reexecutată identic. Este posibil să modificați acest cod sau să programați direct în VBE (fila Dezvoltare / Editor Visual Basic). Înregistrarea macro este cea mai bună metodă de învățare a VBA pentru programatorii începători. În primul rând, înregistrăm o secvență apăsând butonul de înregistrare și apoi o putem rula pas cu pas (tasta F8) în instrumentul VBA pentru a verifica acțiunile efectuate de fiecare linie de cod.
Principalele colecții de obiecte de procesare a textelor Word sunt Documente (documente), BookMarks (marcaje pentru documente), Range (conținut pentru marcaje). Ele pot fi utilizate într-o ierarhie descendentă:
Odată ce un obiect este desemnat: