În această secțiune, vom lua în considerare ce este VBA, deoarece macrourile sunt scrise pe el.
VBA este un limbaj de programare încorporat (spre Visual Basic for Applications) care a fost dezvoltat de Microsoft. Acest limbaj nu este independent, ci este destinat doar automatizării proceselor din pachetul MS Office. VBA este utilizat pe scară largă în Excel, precum și în Access, Word și alte programe din suită.
VBA este un limbaj de programare simplu pe care oricine îl poate învăța. Odată ce îl înveți, vei putea să dai comenzi Excel, ce să faci cu coloanele, rândurile, valorile celulelor, să muți/adăugați/sortați foi de lucru, să afișați mesaje preprogramate, să vă scrieți propriile formule și funcții și multe altele. Esența limbajului este de a opera asupra obiectelor.
Pentru a lucra cu codul VBA, avem nevoie de un editor (Visual Basic Editor), care este deja instalat în Excel în mod implicit. Îl puteți deschide apăsând combinația de taste „Alt+F11”.
Să înțelegem ce este un obiect din VBA.
VBA Un obiect este un element, o particulă structurală Excel, și anume: carte, foaie, interval, celulă.
Obiectele VBA au o ierarhie, adică sunt subordonate unul altuia. Schematic, structura ierarhiei din Excel poate fi reprezentată după cum urmează:
Cel mai important obiect este Application, care corespunde programului Excel însuși. Urmează Workbook (carte), Worksheet (foaie), Range (interval sau celulă individuală).
De exemplu, pentru a face referire la celula „A1” din foaia de lucru, ar trebui să scriem următoarea cale, ținând cont de ierarhie:
Application.Workbooks("Archive").Worksheets("Sheet1").Range("A1")
Astfel, am învățat să ne referim la cel mai mic obiect din Excel - o celulă.
La rândul lor, obiectele VBA aparțin „colecțiilor”.
VBA O colecție este un grup (matrice) de obiecte din aceeași clasă (un set de cărți, foi etc.). Da, toate obiectele Worksheet sunt elemente ale colecției Worksheets. La rândul său, colecția este și un obiect.
Aceleași obiecte pot aparține mai multor colecții. De exemplu, obiectele Worksheet aparțin și ele colecției Sheets. Colecția Sheets conține toate foile care se află în registrul de lucru - atât diagrame, care sunt, de asemenea, considerate foi (Chart), cât și foi de date (Worksheet).
Următoarele colecții există în VBA Excel:
Fiecare obiect din VBA are proprietăți. De exemplu, un obiect Range are o proprietate Value sau Formula.
Worksheets("Sheet1").Range("A1").Value sau Worksheets("Sheet1").Range("A1").Formula
În acest exemplu, proprietatea afișează valoarea introdusă în celulă sau formula introdusă.
De asemenea, prin proprietatea Formula, puteți nu numai să obțineți formula, ci și să o scrieți:
MsgBox Range("A1").Formula - vom primi un mesaj cu formula în celula "A1";
Range("B12").Formula = "=2+6*100" - introduceți formula "=2+6*100" în celula "B12".
Acum să vedem cum putem manipula conținutul unui interval sau al unei celule. Pentru aceasta, există așa-numitele metode (comenzi „ce să faci”) în VBA. La scrierea codului, metodele sunt separate de obiect cu un punct, de exemplu:
Range("A1").Select sau Cells(1,1).Select
Această metodă specifică să selectați (Select) celula „A1”.
Apoi, să ștergem valoarea din această celulă. Pentru aceasta, vom scrie următorul cod.
Selection.ClearContents
Aici programul „preia” ceea ce am selectat (Selection) și șterge conținutul acestuia (ClearContents).