Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Știri
  • Exemple de programe Vba Excel. Noțiuni de bază pentru programarea VBA și crearea de macro-uri în aplicațiile Microsoft Office

Exemple de programe Vba Excel. Noțiuni de bază pentru programarea VBA și crearea de macro-uri în aplicațiile Microsoft Office

Ne-am familiarizat pe scurt cu înregistrarea unei macrocomenzi folosind reportofonul Excel. Acum ne vom adânci în această junglă și vom scrie câteva macrocomenzi simple ca exemplu. Într-unul dintre exemple, vom demonstra în mod tradițional lucrul cu căsuță de dialog tastați „Mesaj”, în celălalt ne vom extinde caseta de dialog.

Exemplul 1: Un mesaj simplu de dialog msgBox în VBA

Nu ne vom abate de la tradițiile începutului tuturor exemplelor de programare. Să scriem o macrocomandă care, atunci când este rulată, ne va oferi o casetă de mesaj cu inscripția „ Salut Lume". În același timp, luați în considerare lucrul cu dialoguri personalizate.

Acum vom scrie macrocomenzi numai în mod manual, fără recordere!

Deci, pentru a crea o macrocomandă, trebuie să deschideți fereastra editorului dvs. favorit Visual Basic (VB). Pentru a face acest lucru, efectuați următorii pași: Serviciu-Macro-EditorVizualDe bază(Alt+F11).


Se va deschide fereastra MS Visual Basic Editor.

Dacă nu aveți ferestre rămase, atunci trebuie să le activați. Pentru a face acest lucru, apăsați F4 - Deschide fereastra de proprietăți Proprietățiferestre, iar comanda rapidă de la tastatură Ctrl + R - deschide o fereastră proiectexplorator. Fără aceste ferestre este dificil să lucrezi în viitor. Toate! Făcut.

Ce vedem în fereastră proiect? Această fereastră reflectă exact aceeași structură a cărții noastre. Obiecte carte - Sheet1, 2, 3, This book. Vom studia aceste obiecte mai detaliat în articolele următoare, dar deocamdată revin la exemplu.

Ce trebuie să faceți pentru a începe să scrieți cod? Trebuie să creați un modul. Notă: În general, în viitor, recomand separarea codului de gestionare în module diferite. Acest lucru va face codul mai ușor de înțeles și va crea ordine în structură.

Creați un modul: Inserare-Modul

O fereastră de modul goală s-a deschis în fața noastră, amintind de un blocnotes. Am văzut deja o astfel de fereastră când am înregistrat prima macrocomandă în . Conform regulilor „bunelor maniere” să dăm un nume modulului nostru, să-i spunem „ macrocarte". Pentru a face acest lucru, accesați fereastra de proprietăți și introduceți un nume în câmp (Nume)

Accesați fereastra de editare a codului și scrieți următoarele:

Gata! Deschizând fereastra registrul de lucru Excel, dă clic Alt+F8și vedeți macro-ul nostru „Bună ziua”

Tot ce rămâne este „ Alerga". Ca rezultat al macrocomenzii, vom primi un mesaj cu următoarea formă și conținut:

Exemplul 2: mesaj de dialog extins msgBox în VBA

Luați în considerare un alt tip de mesaje de dialog care conțin butoane suplimentare „Da”, „Nu”, „Anulare”

Să trecem la codul macrocomenzii noastre „Bună ziua” și să adăugăm la comandă msgbox ca urmare a:

MsgBox„Bună ziua, lume!”, vbYesNoCancel, „Macroma mea”

Rețineți că atunci când puneți o virgulă după „Hello, World!”, ar trebui să aveți o listă cu toate tipurile disponibile casete de dialog

Experimentați cu fiecare pentru a înțelege.

Să rulăm macro-ul nostru

Acum avem o formă complet diferită de comunicare.

Asta este tot pentru acum. Rămâneți pe fază pentru articole și tutoriale. Dacă aveți întrebări, vă voi răspunde cu plăcere și, dacă este necesar, voi scrie un articol cu ​​o explicație.

Video: Un exemplu despre cum funcționează msgbox în vba

Pentru început, ca exemplu, luați în considerare procedura simpla tip VBA Sub. Este stocat într-un modul VBA și calculează suma primelor sute de numere întregi pozitive. La sfârșitul calculului, procedura afișează un mesaj cu rezultatul.

Sub VBA_Demo()
« Exemplu simplu de procedură VBA
Dim Total As Long, i As Long
Total = 0
Pentru i = 1 până la 100
Total = Total + i
Apoi eu
MsgBox Total
end sub

Descărcați nota în format sau

Această procedură folosește câteva elemente de limbaj populare:

  • comentariu (șir care începe cu un apostrof);
  • declarație de variabilă (începând cu linia cuvânt cheie Dim);
  • două variabile (Total și i);
  • doi operatori de atribuire (Total = 0 și Total = Total + i);
  • structura ciclică (Pentru–Următorul);
  • Funcția VBA (MsgBox).

Comentarii

Puteți folosi pentru comentariu linie nouă sau introduceți un comentariu după declarația de pe aceeași linie.

În unele cazuri, doriți să testați o procedură fără a introduce o instrucțiune sau chiar un întreg set de instrucțiuni în ea. În loc să ștergeți declarația corespunzătoare, este suficient să o transformați într-un comentariu prin adăugarea unui apostrof la începutul rândului. După aceea, VBA va ignora instrucțiunea (sau instrucțiunile) atunci când execută procedura. Pentru a converti un comentariu într-o declarație, trebuie doar să eliminați apostroful.

Variabile, tipuri de date și constante

Variabil este o locație numită pentru stocarea datelor în memoria computerului. Variabilele pot conține date tipuri diferite. Puteți utiliza litere, cifre și unele semne de punctuație în nume, dar litera trebuie întotdeauna introdusă prima în numele variabilei. VBA nu recunoaște majuscule în numele variabilelor. Nu puteți folosi spații sau puncte în nume, dar puteți separa cuvintele cu caractere de subliniere.

VBA folosește o mulțime de cuvinte rezervate care nu pot fi folosite ca nume de variabile sau de proceduri.

Interpretul VBA ușurează viața programatorilor prin gestionarea automată a oricărui tip de . Cu toate acestea, acest lucru este plin de consecințe negative - executarea mai lentă a operațiunilor și mai puțin utilizare eficientă memorie. Ca rezultat, permiterea VBA să definească singur tipuri de date poate întâmpina probleme la rularea aplicațiilor mari sau complexe.

Se recomandă să selectați tipul de date care utilizează numărul minim de octeți pentru a stoca valori. Excel folosește tipul de date Double pentru a efectua calcule matematice în foile de lucru. Se recomandă utilizarea acestuia în procesul de procesare a numerelor în VBA pentru a asigura aceeași acuratețe a calculelor.

Există trei tipuri de domenii variabile:

Lucrul cu constante

Uneori este necesar să folosiți o valoare numită sau un șir care nu se schimbă niciodată - o constantă. Dacă o procedură se referă de mai multe ori la o anumită valoare, cum ar fi rata dobânzii, ar trebui să declarați această valoare ca o constantă și să utilizați numele constantei, nu valoarea acesteia, în expresii. Această tehnică nu numai că face programul mai ușor de citit, dar face și mai ușoară schimbarea codului mai târziu - este suficient să schimbați o singură instrucțiune, nu mai multe.

Operatorul Const este folosit pentru a declara constante. De exemplu,

Const NumQuarters ca Integer = 4

La fel ca variabilele, constantele au un domeniu de aplicare. Dacă încercați să modificați valoarea unei constante în codul VBA, veți obține o eroare (ceea ce este de așteptat). O constantă este o valoare constantă, nu o variabilă. Există o serie de constante predefinite în Excel și VBA care pot fi utilizate fără a fi declarate. Nici măcar nu trebuie să știi semnificația acestor constante pentru a le folosi. Când scrieți macrocomenzi, se folosesc de obicei constante, nu valori. LA următoarea procedură pentru a schimba orientarea paginii foii active în peisaj, se folosește o constantă încorporată:

Sub SetToLandscape()
ActiveSheet.PageSetup.Orientation = xlLandscape
end sub

Valoarea reală a variabilei xlLandscape este 2. Fereastra Object Browser conține o listă cu toate constantele Excel și VBA. Pentru a deschide Object Browser în VBE, apăsați tasta .

În VBA, data și ora sunt definite ca valori între semnele #

Const FirstDay As Date = #1/1/2007#
Const Noon = #12:00:00#

Datele sunt întotdeauna definite în format lună/zi/an, chiar dacă sistemul este configurat să afișeze date într-un format diferit.

Operatori de atribuire

Un operator de atribuire este o instrucțiune VBA care efectuează calcul matematicși atribuirea rezultatului unei variabile sau unui obiect. LA sistem de ajutor expresie excel definit ca o combinație de cuvinte cheie, operatori, variabile și constante. Această combinație returnează un șir, un număr sau un obiect ca rezultat. O expresie poate efectua un calcul, procesa caractere sau date de testare.

Un număr mare de operațiuni efectuate în VBA implică dezvoltarea (și depanarea) expresiilor. Dacă știți cum să creați formule în Excel, atunci nu veți avea nicio problemă să creați expresii în VBA. Într-o formulă de foaie de lucru Excel, rezultatul este afișat într-o celulă. Pe de altă parte, o expresie VBA poate atribui o valoare unei variabile sau poate fi folosită ca valoare a unei proprietăți. În VBA, operatorul de atribuire este semnul egal (=).

Matrice

O matrice este un grup de elemente de același tip care au un nume comun; un anumit element de matrice este referit folosind numele și indexul matricei. De exemplu, puteți defini o matrice de 12 șiruri, astfel încât fiecare variabilă să corespundă numelui unei luni. Dacă denumiți tabloul MonthNames, vă puteți referi la primul element al matricei ca MonthNames (0), al doilea element ca MonthNames (1) și așa mai departe până la MonthNames (11).

Puteți declara o matrice care conține exact 100 de numere întregi, după cum urmează:

Dim MyArray(1 Then 100) As Integer

În mod implicit, tablourile VBA folosesc zero ca prim element. Dacă doriți ca primul index al tuturor tablourilor să fie 1, trebuie să declarați următoarea declarație înainte de procedura primului modul: Opțiunea de bază 1

O matrice dinamică nu are un număr predefinit de elemente. Este declarată cu valori goale în paranteze: Dim MyArray() As Integer. Cu toate acestea, înainte ca o matrice dinamică să poată fi utilizată într-un program, instrucțiunea ReDim trebuie utilizată pentru a spune VBA câte elemente sunt în matrice. Acest lucru se face adesea folosind o variabilă a cărei valoare nu este cunoscută până când procedura este rulată. De exemplu, dacă variabilei x i se atribuie un număr, dimensiunea matricei este determinată folosind următoarea instrucțiune: ReDim MyArray (1 la x).

Variabile obiect

Variabila obiect este o variabilă care reprezintă un obiect întreg, cum ar fi un interval sau o foaie de lucru: Dim InputArea As Range. Pentru a atribui un obiect unei variabile, utilizați cuvântul cheie Set: Set InputArea = Range("C16:E16").

Funcții încorporate

VBA are o serie de funcții încorporate care simplifică calculele și operațiunile. De exemplu, funcția VBA UCase care convertește un șir în majuscule este echivalentă cu funcția Excel UPPER. Pentru a utiliza o funcție Excel într-o instrucțiune VBA, precedați numele funcției cu următoarea expresie:

Aplicație.Foaia de lucruFuncție

Este important să înțelegeți că nu puteți utiliza funcții Excel pentru care VBA oferă funcții echivalente. De exemplu, VBA nu vă permite să accesați funcția Excel ROOT (SQRT), deoarece VBA are propria versiune această caracteristică: Sqr. Deci următoarea declarație aruncă o eroare:

MsgBox Application.WorksheetFunction.Sqrt(123)

Funcția MsgBox este una dintre cele mai utile din VBA. Printre altele, este un instrument excelent de depanare, deoarece puteți insera funcția MsgBox în orice moment pentru a întrerupe programul și a afișa rezultatul unui calcul sau al unei atribuiri. Funcția MsgBox nu numai că returnează o valoare, dar afișează și o casetă de dialog în care utilizatorul poate efectua anumite acțiuni. Valoarea returnată de funcția MsgBox este răspunsul utilizatorului la promptul afișat. Funcția MsgBox poate fi utilizată chiar și atunci când nu este necesar un răspuns utilizator, dar trebuie afișat un mesaj. Sintaxa funcției MsgBox:

MsgBox(mesaj[, butoane] [, titlu] [, fișier_ajutor, context])

  • Mesaj (argument obligatoriu) - mesajul care este afișat în caseta de dialog.
  • Butoane (argument opțional) - O valoare care determină ce butoane și pictograme (dacă există) sunt afișate în caseta de mesaj. Utilizați constante încorporate (de exemplu, vbYesNo).
  • Titlu (argument opțional) - textul care este afișat în bara de titlu a casetei de mesaj. Textul este afișat implicit Microsoft Excel.
  • help_file (argument opțional) - numele fișierului de ajutor corespunzător casetei de mesaj.
  • Context (argument opțional) - identificatorul de context al subiectului de ajutor. Reprezintă un anumit subiect de ajutor de afișat. Dacă utilizați argumentul context, trebuie să utilizați și argumentul helpfile.

Puteți atribui valoarea rezultată unei variabile sau puteți utiliza funcția fără un operator de atribuire. În exemplul de mai jos, rezultatul este atribuit variabilei Ans.

Răspuns = MsgBox ("Continuați?" , vbDaNu + vbÎntrebare, "Spuneți-mi")
Dacă Ans = vbNu, Ieșiți din sub

Rețineți că valoarea argumentului butonului este suma a două constante încorporate (vbYesNo + vbQuestion). Constanta vbYesNo face ca caseta de mesaj să afișeze două butoane, unul etichetat Da și unul etichetat Nu. Adăugarea unui vbQuestion la argument va afișa și un semn de întrebare. De îndată ce prima instrucțiune este executată, variabila Ans va lua una dintre cele două valori reprezentate de constantele vbYes și vbNo. În acest exemplu, procedura se încheie când se face clic pe butonul Nu.

Gestionarea obiectelor și colecțiilor

VBA oferă două constructe pentru a vă ajuta să gestionați mai ușor obiectele și colecțiile. Construcția With-End With vă permite să efectuați mai multe operații pe un singur obiect. Pentru a înțelege cum funcționează, luați în considerare următoarea procedură, care modifică șase proprietăți ale unui obiect selectat (presupunând că este selectat un obiect Range).

SubChangeFontl()
Selection.Font.Name = " Cambria "
Selection.Font.Bold = Adevărat Selection.Font.Italic = Adevărat
Selection.Font.Size = 12
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.ThemeColor = xlThemeColorAccentl
end sub

Această procedură poate fi rescrisă folosind constructul With - End With. Procedura prezentată mai jos funcționează exact la fel ca cea anterioară.

SubChangeFont2()
Cu Selectie.Font
.Nume = „Cambria”
.Bold = Adevarat
.Italic = Adevarat
.Dimensiune=12
.underline = xlUnderlineStyleSingle
.ThemeColor = xlThemeColorAccentl
se termina cu
end sub

Să presupunem că decideți să efectuați o acțiune asupra tuturor obiectelor dintr-o colecție sau trebuie să evaluați toate obiectele dintr-o colecție și să efectuați o acțiune atunci când sunt îndeplinite anumite condiții. Aceasta este situația ideală pentru utilizarea constructului For Each - Next. Sintaxa construcției:

Pentru fiecare elementÎn Colectie
[instrucțiuni]
[instrucțiuni]
Următorul[ element]

De exemplu:

Sub Countsheets()
Dim Item as Worksheet
Pentru fiecare articol din ActiveWorkbook.Worksheets
Nume articol MsgBox
Următorul articol
end sub

Următorul exemplu închide toate ferestrele, cu excepția celei active:

Sub CloseInactiv()
Dim Book ca registru de lucru
Pentru fiecare carte din caietele de lucru
Dacă Cartea.Nume<>ActiveWorkbook.Nume Apoi Carte.Închide
Următoarea carte
end sub

Controlul execuției codului

Unele proceduri VBA încep să se execute de la primele linii de cod. Cu toate acestea, uneori este necesar să se controleze secvența operațiunilor prin sărirea peste instrucțiuni individuale, reexecutarea anumitor comenzi și verificarea condițiilor pentru a determina următoarea acțiune care trebuie întreprinsă de procedură.

Declarația GoTo redirecționează execuția programului către instrucție nouă, care este etichetat într-un mod special (șir de text, care se termină cu două puncte sau un număr care se termină cu un spațiu, specificat înainte de instrucțiune). Următoarea procedură folosește funcția VBA InputBox pentru a obține numele de utilizator. Dacă numele de utilizator este diferit de Howard, atunci procedura trece la eticheta WrongName, unde își încheie activitatea. În caz contrar, procedura efectuează operații suplimentare. Instrucțiunea Exit Sub încheie execuția unei proceduri.

Sub GoToDemo()
UserName = InputBox(" Introduceți numele dvs.: ")
Dacă UserName<>„Howard” Apoi GoTo WrongName
MsgBox ("Bună ziua Howard...")
" - [Introdus aici cod suplimentar] —
ieșire sub
Nume gresit:
MsgBox „Ne pare rău, numai Howard poate rula această procedură.”
end sub

În realitate, instrucțiunea GoTo este necesară doar pentru a detecta erori (codul de mai sus este un exemplu prost care nu ar trebui folosit).

Poate că constructul If-Then este cel mai des folosit pentru a grupa instrucțiuni VBA:

Dacă condiție Apoi instrucțiuni_adevărate

De exemplu

Sub GreetMe()
Dacă Timpul< 0.5 Then
MsgBox" Buna dimineata "
Timpul Elself >= 0,5 Și Timpul< 0.75 Then
MsgBox „Bună ziua”
Altfel
MsgBox „Bună seara”
Încheiați dacă
end sub

VBA folosește un sistem de dată și oră similar cu cel folosit în Excel. Ora zilei este exprimată număr fracționar, de exemplu, amiaza este reprezentată ca 0,5. Valoarea 0,75 reprezinta ora 18:00 - trei sferturi din zi si momentul in care ziua se transforma in seara. Structurile imbricate If-Then sunt destul de greoaie. Prin urmare, se recomandă să le folosiți numai pentru luarea unor decizii binare simple. Dacă trebuie să alegeți între trei sau mai multe opțiuni, atunci este recomandabil să vă referiți la design Selectați caz.

Următoarea procedură utilizează funcția VBA WeekDay pentru a determina dacă ziua curentă este sâmbătă sau duminică (funcția Weekday returnează 1 sau 7). Mesajul corespunzător este apoi afișat.

Sub GreetUserlO
Selectați cazul Ziua săptămânii (Acum)
Cazul 1, 7
MsgBox „Este weekend”
Cazul Altceva
MsgBox „Nu este weekend”
Încheierea selectării
end sub

Interpretul VBA iese din constructia Select Case de îndată ce este găsită condiția True. Prin urmare, pentru eficienta maxima, cazul cel mai probabil ar trebui testat mai întâi.

Ciclu este procesul de repetare a unui set de instrucțiuni. Poate că știți dinainte de câte ori ar trebui să se repete bucla, sau această valoare este determinată de variabilele din program. Cel mai simplu exemplu ciclu bun - Pentru-Următorul:

Pentru tejghea = start Acea sfarsit
[instrucțiuni]
[instrucțiuni]
Următorul[ tejghea]

Următoarea procedură rezumă rădăcini pătrate primele 100 de numere întregi:

Sub SumSquareRoots()
Dim Sum ca dublu
Dim Count As Integer
Suma = 0
Pentru Număr = 1 până la 100
Sumă = Sumă + Sqr(Număr)
Următorul număr
Suma MsgBox
end sub

Valoarea variabilei Step din bucla For-Next poate fi negativă. Următoarea procedură șterge rândurile 2, 4, 6, 8 și 10 din foaia activă:

Sub DeleteRows()
Dim RowNum As Long
Pentru RowNum = 10 la 2 Pasul -2
Rows(RowNum).Delete
Următorul RowNum
end sub

Buclele For-Next pot conține, de asemenea, una sau mai multe instrucțiuni Exit For. Când programul întâlnește această instrucțiune, iese imediat din buclă:

Sub ExitForDemo()
Dim MaxVal ca dublu
Dim Row As Long
MaxVal = Application.WorksheetFunction.Max(Range("A:A"))
Pentru rând = 1 până la 1048576
Dacă Celule(Rând, 1).Valoare = Val.Max. Atunci
Ieșire pentru
Încheiați dacă
rândul următor
MsgBox" Valoare maximăîn linia „ & Row
Celule (Rând, 1).Activare
end sub

Valoarea maximă dintr-o coloană este calculată utilizând funcția Excel MAX. Această valoare este apoi atribuită variabilei MaxVal. Bucla For-Next verifică fiecare celulă din coloană. Dacă celula specificată este egală cu MaxVal, instrucțiunea Exit For încheie procedura. Cu toate acestea, înainte de a ieși din buclă, procedura informează utilizatorul despre locația celulei dorite și o activează.

Bucla Do While este executată până la condiție dată. O buclă Do While poate avea una dintre următoarele două sintaxe.

Do
[instrucțiuni]
[instrucțiuni]
buclă

Do
[instrucțiuni]
[instrucțiuni]
buclă

Procedura EnterDates1 introduce datele lunii curente într-o coloană a foii de lucru, pornind de la celula activă:

SubEnterDatesl()
„Do While bucla, condiția este verificată la început
Dim TheDate ca dată
TheDate = DateSerial(Year(Date), Month(Date), 1)
A face While Month(TheDate) = Month(Date)
ActiveCell = TheDate
TheDate = TheDate + 1
ActiveCell.Offset(1, 0).Activare
buclă
end sub

Această procedură folosește variabila TheDate, care stochează datele înregistrate în foaia de lucru. Prima zi a lunii curente este folosită pentru a inițializa variabila. În timpul execuției buclei, a fost introdusă valoarea variabilei TheDate celulă activă, apoi această valoare a fost mărită cu unu, după care se activează următoarea celulă. Bucla continuă până când valoarea lunii atribuită variabilei TheDate se potrivește cu valoarea lunii a datei curente.

Buclele Do While pot include, de asemenea, una sau mai multe instrucțiuni Exit Do. Când se ajunge la instrucțiunea Exit Do, bucla se termină și controlul este transferat instrucțiunii care urmează instrucțiunii Loop.

Structura buclei Do Until are multe în comun cu construcția Do While. Singura diferență este modul în care este verificată starea buclei. În varianta Do buclă while executat atâta timp cât condiția este îndeplinită. Într-o buclă Do Until, bucla rulează până când condiția este îndeplinită. Structura Do Until poate fi reprezentată și prin două tipuri de sintaxă.

Bazat pe carte. - M: Dialectică, 2013. - S. 211-251.

Puțini oameni știu că prima versiune a popularului produs Microsoft Excel a apărut în 1985. De atunci, a trecut prin mai multe modificări și este solicitat de milioane de utilizatori din întreaga lume. În același timp, mulți oameni lucrează cu doar o mică parte din capacitățile acestui procesor de foi de calcul și nici măcar nu realizează cum abilitatea de a programa în Excel le-ar putea face viața mai ușoară.

Ce este VBA

Programarea în Excel se face prin limbaj Programare vizuală Basic for Application, care este inițial încorporat în cel mai faimos procesor de foi de calcul de la Microsoft.

Experții se referă la avantajele sale ca fiind o ușurință comparativă de dezvoltare. După cum arată practica, chiar și utilizatorii care nu au abilitățile pot stăpâni elementele de bază ale VBA programare profesionala. Caracteristicile VBA includ execuția unui script într-un mediu de aplicații de birou.

Dezavantajul programului este problemele asociate cu compatibilitatea diverse versiuni. Acestea se datorează faptului că se referă codul programului VBA funcţionalitate, care sunt prezente în versiune noua produs, dar lipsește în cel vechi. De asemenea, dezavantajele includ deschiderea excesiv de mare a codului pentru modificări. de un străin. Cu toate acestea, Microsoft Office, precum și IBM Lotus Symphony permit utilizatorului să aplice criptarea codul initialși setați o parolă pentru a o vizualiza.

Obiecte, colecții, proprietăți și metode

Aceste concepte trebuie să fie înțelese de cei care vor lucra în mediul VBA. În primul rând, trebuie să înțelegeți ce este un obiect. În Excel, aceasta este foaia de lucru, registrul de lucru, celula și intervalul. Aceste obiecte au o ierarhie specială, adică. sunt subordonate unul altuia.

Principala este Aplicația, care corespunde celor mai multe programul Excel. Apoi vin caietele de lucru, foile de lucru și, de asemenea, Range. De exemplu, pentru a accesa celula A1 dintr-o anumită foaie de lucru, trebuie să specificați o cale care ia în considerare ierarhia.

În ceea ce privește conceptul de „colecție”, acesta este un grup de obiecte din aceeași clasă, care în înregistrare are forma ChartObjects. A ei elemente individuale sunt de asemenea obiecte.

Următorul concept este proprietățile. Sunt o caracteristică necesară a oricărui obiect. De exemplu, pentru Interval este Valoare sau Formula.

Metodele sunt comenzi care indică ceea ce trebuie făcut. Când scrieți cod în VBA, acestea trebuie separate de obiect printr-un punct. De exemplu, așa cum se va arăta mai târziu, foarte des atunci când programați în Excel, este folosită comanda Cells(1,1).Select. Înseamnă că trebuie să selectați o celulă cu coordonate

Alături de acesta, Selection.ClearContents este adesea folosit. Executarea acestuia înseamnă ștergerea conținutului celulei selectate.

Cum să înceapă

Apoi trebuie să accesați aplicația VB, pentru care este suficient să utilizați combinația de taste „Alt” și „F11”. Mai departe:

  • în bara de meniu situată în partea de sus a ferestrei, faceți clic pe pictograma de lângă pictograma Excel;
  • selectați comanda Mudule;
  • salvați făcând clic pe pictograma cu imaginea;
  • scrieți, să spunem, o schiță a codului.

Arata cam asa:

subprogram()

„Codul nostru

Rețineți că linia „Codul nostru” va fi evidențiată într-o culoare diferită (verde). Motivul este apostroful de la începutul rândului, ceea ce indică faptul că urmează un comentariu.

Acum puteți scrie orice cod și puteți crea pentru dvs instrument nouîn VBA Excel (vezi exemplele de programe de mai jos). Desigur, pentru cei care sunt familiarizați cu elementele de bază ale Visual Basic, va fi mult mai ușor. Cu toate acestea, chiar și cei care nu le au, dacă se dorește, se vor putea simți confortabil suficient de repede.

Macro-uri în Excel

Acest nume ascunde programele scrise în Limbajul vizual De bază pentru aplicare. Astfel, programarea în Excel este crearea de macro-uri cu codul corect. Datorită acestei caracteristici, tabelul procesor Microsoft autodezvoltându-se, adaptându-se la cerințe utilizator specific. După ce v-ați dat seama cum să creați module pentru scrierea macrocomenzilor, puteți începe să luați în considerare exemple concrete Programe VBA Excel. Cel mai bine este să începeți cu cele mai elementare coduri.

Exemplul 1

Sarcină: scrieți un program care va copia valoarea conținutului unei celule și apoi va scrie în alta.

Pentru asta:

  • deschide fila „Vizualizare”;
  • accesați pictograma „Macro-uri”;
  • faceți clic pe „Înregistrați macrocomandă”;
  • completați formularul deschis.

Pentru simplitate, lăsați „Macro1” în câmpul „Nume macro” și introduceți, de exemplu, hh în câmpul „Comandă rapidă de la tastatură” (aceasta înseamnă că puteți rula programul cu comanda blitz „Ctrl + h”). Apasa Enter.

Acum că înregistrarea macro a început deja, conținutul unei celule este copiat în alta. Reveniți la pictograma originală. Faceți clic pe „Înregistrați macrocomandă”. Această acțiune marchează sfârșitul programului.

  • mergeți din nou la linia „Macro-uri”;
  • selectați „Macro 1” din listă;
  • faceți clic pe „Run” (aceeași acțiune este declanșată prin pornirea comenzii rapide de la tastatură „Ctrl + hh”).

Ca urmare, are loc acțiunea care a fost efectuată în timpul înregistrării macro-ului.

Este logic să vedem cum arată codul. Pentru a face acest lucru, reveniți la linia „Macro-uri” și faceți clic pe „Editare” sau „Enter”. Ca rezultat, ei se găsesc într-un mediu VBA. De fapt, codul macro în sine este situat între liniile Sub Macro1() și End Sub.

Dacă a fost efectuată copierea, de exemplu, din celula A1 în celula C1, atunci una dintre liniile de cod va arăta ca Interval(„C1”). Selectați. În traducere, arată ca „Range(“C1”). Selectați”, cu alte cuvinte, sare la VBA Excel, la celula C1.

Comanda ActiveSheet.Paste completează partea activă a codului. Înseamnă înregistrarea conținutului celulei selectate (în acest caz A1) în celula evidențiată C1.

Exemplul 2

Buclele VBA vă ajută să creați diverse macrocomenzi în Excel.

Buclele VBA vă ajută să creați diverse macrocomenzi. Să presupunem că există o funcție y=x + x 2 + 3x 3 - cos(x). Trebuie să creați o macrocomandă pentru a obține programul acesteia. Acest lucru se poate face numai folosind bucle VBA.

Pentru inițial și valoarea finală argumentele funcției iau x1=0 și x2=10. În plus, trebuie să introduceți o constantă - valoarea pentru pasul de schimbare a argumentului și valoarea initiala pentru contor.

Toate exemplele macrocomenzi VBA Fișierele Excel sunt create urmând aceeași procedură ca mai sus. În acest caz particular, codul arată astfel:

subprogram()

pas = 0,1

Faceți în timp ce x1< x2 (цикл будет выполняться пока верно выражение x1 < x2)

y=x1 + x1^2 + 3*x1^3 - Cos(x1)

Cells(i, 1).Valoare = x1 (valoarea x1 este scrisă în celula cu coordonatele (i,1))

Cells(i, 2).Value = y (valoarea y este scrisă în celula cu coordonatele (i,2))

i = i + 1 (contor activ);

x1 = x1 + shag (argumentul este schimbat de valoarea pasului);

endsub.

Ca urmare a rulării acestei macrocomenzi în Excel, obținem două coloane, prima dintre care conține valorile pentru x, iar a doua pentru y.

Apoi, un grafic este construit pe ele într-un mod standard pentru Excel.

Exemplul 3

Pentru a implementa bucle în VBA Excel 2010, ca și în alte versiuni, împreună cu constructul Do While deja dat, se folosește For.

Luați în considerare un program care va crea o coloană. În fiecare dintre celulele sale se vor scrie pătratele numărului liniei corespunzătoare. Utilizarea constructului For vă va permite să o scrieți foarte scurt, fără a utiliza un contor.

Mai întâi trebuie să creați o macrocomandă, așa cum este descris mai sus. Apoi, scriem codul în sine. Credem că ne interesează valorile pentru 10 celule. Codul arată așa.

Pentru i = 1 până la 10 În continuare

Comanda se traduce în limbaj „uman” prin „Repetați de la 1 la 10 în trepte de unu”.

Dacă sarcina este să obțineți o coloană cu pătrate, de exemplu, toate numerele impare din intervalul de la 1 la 11, atunci scriem:

Pentru i = 1 până la 10 pasul 1 În continuare.

Aici pasul este un pas. În acest caz, este egal cu doi. În mod implicit, absența acestui cuvânt în ciclu înseamnă că pasul este unic.

Rezultatele obţinute trebuie salvate în celule cu numărul (i,1). Apoi, de fiecare dată când bucla este pornită, cu o creștere a i cu valoarea pasului, și numărul rândului va crește automat. Astfel, codul va fi optimizat.

În general, codul va arăta astfel:

subprogram()

Pentru i = 1 la 10 Pasul 1 (puteți scrie simplu Pentru i = 1 la 10)

Celule(i, 1).Valoare = i ^ 2

În continuare (într-un anumit sens, acționează ca un contor și înseamnă încă un început al buclei)

endsub.

Dacă totul este făcut corect, inclusiv înregistrarea și rularea macrocomenzii (vezi instrucțiunile de mai sus), atunci de fiecare dată când este apelată, se va obține o coloană dimensiune dată(în acest caz format din 10 celule).

Exemplul 4

LA Viata de zi cu zi destul de des este nevoie de a lua una sau alta decizie în funcție de o anumită condiție. Nu te poți descurca fără ele în VBA Excel. Exemple de programe în care se alege cursul ulterioar al algoritmului și nu este predeterminat inițial, cel mai adesea folosesc construcția If …Then (pentru cazuri complexe) If …Then …END If.

Să luăm în considerare un caz concret. Să presupunem că trebuie să creați o macrocomandă pentru „Excel”, astfel încât celula cu coordonatele (1,1) să fie scrisă:

1 dacă argumentul este pozitiv;

0 dacă argumentul este nul;

-1 dacă argumentul este negativ.

Începe crearea unei astfel de macrocomenzi pentru Excel într-un mod standard, prin utilizarea lui „fierbinte” Tastele Altși F11. Următorul cod este scris în continuare:

subprogram()

x= Celule(1, 1).Valoare (această comandă atribuie x valoarea conținutului celulei la coordonatele (1, 1))

Dacă x>0, atunci Cells(1, 1).Valoare = 1

Dacă x=0, atunci Cells(1, 1).Valoare = 0

Dacă x<0 Then Cells(1, 1).Value = -1

endsub.

Rămâne să rulați macro-ul și să obțineți valoarea dorită pentru argument în Excel.

Funcții VBA

După cum probabil ați observat, programarea în cea mai faimoasă foaie de calcul Microsoft nu este atât de dificilă. Mai ales dacă înveți cum să folosești funcțiile VBA. În total, acest limbaj de programare, creat special pentru scrierea aplicațiilor în Excel și Word, are aproximativ 160 de funcții. Ele pot fi împărțite în mai multe grupuri mari. Aceasta:

  • Funcții matematice. Aplicându-le argumentului, obțin valoarea cosinusului, logaritmului natural, părții întregi etc.
  • functii financiare. Datorită prezenței lor și utilizării programării în Excel, puteți obține instrumente eficiente pentru calcule contabile și financiare.
  • Funcții de procesare a matricei. Acestea includ Array, IsArray; lBound; UBound.
  • Funcții Excel VBA pentru rând. Acesta este un grup destul de mare. Include, de exemplu, funcțiile Space pentru a crea un șir cu numărul de spații egal cu un argument întreg sau Asc pentru a converti caracterele în cod ANSI. Toate sunt utilizate pe scară largă și vă permit să lucrați cu rânduri în Excel, creând aplicații care ușurează mult lucrul cu aceste tabele.
  • Funcții de conversie a tipurilor de date. De exemplu, CVar returnează valoarea unui argument Expression transformându-l într-un tip de date Variant.
  • Funcții pentru lucrul cu datele. Acestea le extind semnificativ pe cele standard.Astfel, functia WeekdayName returneaza numele (complet sau partial) al zilei saptamanii dupa numarul acesteia. Și mai util este Timer-ul. Oferă numărul de secunde care au trecut de la miezul nopții până la un anumit moment al zilei.
  • Funcții pentru conversia unui argument numeric în diferite sisteme numerice. De exemplu, Oct oferă reprezentarea octală a unui număr.
  • Funcții de formatare. Cel mai important dintre acestea este Formatul. Returnează o valoare de tip Variant cu o expresie formatată conform instrucțiunilor date în declarația de format.
  • etc.

Studierea proprietăților acestor funcții și aplicarea lor va extinde în mod semnificativ domeniul de aplicare al Excel.

Exemplul 5

Să încercăm să trecem la rezolvarea unor probleme mai complexe. De exemplu:

Se oferă un document pe hârtie al raportului privind nivelul efectiv al costurilor întreprinderii. Necesar:

  • dezvoltați partea de șablon folosind foaia de calcul Excel;
  • creați un program VBA care va solicita datele inițiale pentru a le completa, efectuați calculele necesare și completați cu ele celulele corespunzătoare ale șablonului.

Să luăm în considerare una dintre soluții.

Creați un șablon

Toate acțiunile sunt efectuate pe o foaie standard în Excel. Celulele libere sunt rezervate pentru introducerea datelor despre numele companiei de consum, valoarea costurilor, nivelul acestora și cifra de afaceri. Deoarece numărul de companii (societăți) pentru care se întocmește raportul nu este fix, celulele pentru introducerea valorilor pe baza rezultatelor și numele complet al specialistului nu sunt rezervate în avans. Foaia de lucru primește un nou nume. De exemplu, „Օtchet”.

Variabile

Pentru a scrie un program pentru a completa automat un șablon, trebuie să alegeți notația. Acestea vor fi folosite pentru variabile:

  • NN - numărul rândului curent al tabelului;
  • TP și TF - cifra de afaceri planificată și efectivă;
  • SF și SP - valoarea efectivă și planificată a costurilor;
  • IP și IF - nivelul planificat și efectiv al costurilor.

Să desemnăm prin aceleași litere, dar cu „prefix” Itog acumularea totală pe coloana dată. De exemplu, ItogTP se referă la o coloană de tabel intitulată „cifra de afaceri planificată”.

Rezolvarea unei probleme folosind programarea VBA

Folosind notația introdusă, obținem formule pentru abateri. Dacă este necesar să se efectueze calculul în%, avem (F - P) / P * 100, iar în sumă - (F - P).

Rezultatele acestor calcule pot fi introduse cel mai bine imediat în celulele corespunzătoare ale foii de calcul Excel.

Pentru totalurile reale și prognozate, se obține folosind formulele ItogP=ItogP + P și ItogF=ItogF+ F.

Pentru abateri, utilizați = (ItogF - ItogP) / ItogP * 100 dacă calculul este efectuat ca procent, iar în cazul unei valori totale - (ItogF - ItogP).

Rezultatele sunt din nou scrise imediat în celulele corespunzătoare, deci nu este nevoie să le atribuiți variabilelor.

Înainte de a rula programul creat, trebuie să salvați registrul de lucru, de exemplu, sub numele „Report1.xls”.

Butonul „Creați tabel de raportare” trebuie apăsat o singură dată după introducerea informațiilor din antet. Există și alte reguli de care trebuie să fii conștient. În special, butonul „Adăugați rând” trebuie să fie apăsat de fiecare dată după introducerea valorilor pentru fiecare activitate din tabel. După ce ați introdus toate datele, trebuie să faceți clic pe butonul „Finish” și apoi să treceți la fereastra „Excel”.

Acum știi cum să rezolvi problemele pentru Excel folosind macrocomenzi. Abilitatea de a utiliza vba excel (vezi exemplele de programe de mai sus) poate fi necesară și pentru a lucra în mediul celui mai popular editor de text „Word”. În special, puteți crea butoane de meniu scriind, așa cum se arată chiar la începutul articolului, sau scriind cod, datorită căruia multe operații asupra textului pot fi efectuate prin apăsarea tastelor de serviciu sau prin fila „Vizualizare” și pictograma „Macro-uri”.


Carte: Utilizarea macrocomenzilor în Excel.

Pagini: 507

Format: DJVU
Marimea: 8,02 Mb

În ciuda funcționalității puternice oferite de interfața cu utilizatorul Excel, există unele sarcini care pot fi efectuate doar programatic. Cartea „Utilizarea macro-urilor în Excel” este o introducere în programarea în Excel VBA, care conține exemple de rezolvare a diferitelor probleme practice care apar atunci când lucrați în Excel.Materialul cărții este destinat utilizatorilor Excel, precum și programatorilor care nu sunt familiarizați cu modelul obiect Excel. Împreună cu secțiunile despre dezvoltarea macrocomenzilor pentru Excel 2002, acesta este un curs introductiv despre scrierea macrocomenzilor și a programelor în mediul Excel.

Carte: Curs intensiv de programare Excel de weekend

Editor: Dialectică
Pagini: 421
Format: DJVU
Marimea: 12,6 MB
Calitate: Normal
Limba: Rusă
Gen: programare
Anul publicării: 2004
ISBN: 5-8459-0687-3

Capacitățile Microsoft Excel nu se limitează la lucrul cu tabele de date. În spatele instrumentelor de calcul se află un limbaj de programare puternic - VBA (Visual Basic for Applications). Cu toate acestea, aproape orice utilizator are posibilitatea de a învăța cum să scrie programe în limbajul VBA pentru rezolvarea celor mai diverse sarcini în Excel - de la execuția mecanică a calculelor până la crearea unui sistem de introducere a datelor cu propriile formulare de ecran și cu probabilitatea de revizuire. corectitudinea valorilor tastate.

Carte: Programare în VBA 2002

Calitate: Normal
Limba: Rusă
Gen: programare

Cartea conține un curs de programare în Visual Basic for Applications (VBA), care este limbajul de bază în aplicațiile Microsoft Office (Word, Excel, Access, PowerPoint, FrontPage, Visio etc.). Cartea este destinată începătorilor să programeze în mediul Windows folosind obiecte Word, Excel, PowerPoint.O parte a cărții este dedicată dezvoltării de aplicații Office care utilizează baze de date stocate atât în ​​fișiere separate, cât și pe servere la distanță.Materialul cărții este suficient pentru a învăța elementele de bază ale limbajului Visual Basic și pentru a crea macrocomenzi simple care ajută la automatizarea lucrărilor repetitive de rutină cu documente, foi de calcul, diagrame, prezentări etc., precum și pentru a dezvolta aplicații de procesare a bazelor de date destul de complexe folosind dialog. casete care oferă utilizatorului cele mai moderne instrumente de interfață.Cele mai multe dintre exemplele din carte sunt dedicate problemelor actuale de afaceri, astfel că cartea va fi foarte utilă managerilor de diferite niveluri, care, aparent, este destinat atât pentru Microsoft Office, cât și pentru limbajul de programare VBA încorporat.
Anexele de la sfârșitul cărții pot servi ca referință utilă atunci când lucrați atât cu VBA, cât și cu VB obișnuit.

Carte: Programare profesională VBA în Excel 2003
John Walkenbach
Editor: Williams
Format: PDF
Marimea: 11 MB
Calitate: Excelent
Limba: Rusă
Anul publicării: 2005
ISBN: 5-8459-0771-3
Cartea vine cu un disc.

Multe cărți au fost scrise pe Excel. Dar această carte este specială - se uită la dezvoltarea aplicațiilor pentru foi de calcul într-un context mai larg. VBA este doar o componentă a mediului de dezvoltare a aplicațiilor personalizate, deși una esențială. Această carte vă va ajuta să înțelegeți complexitatea dezvoltării aplicațiilor folosind VBA. Acesta descrie numeroasele caracteristici ale limbajului VBA, capacitățile sale și mediul de utilizare. În primul rând, vi se va oferi o privire de ansamblu asupra capacităților programului, apoi veți trece la definirea conceptelor de programare VBA și apoi vă veți familiariza cu limba în sine. Dacă sunteți un programator VBA începător, atunci în această publicație veți găsi toate informațiile necesare care vor fi necesare pentru lucrări ulterioare. dacă aveți deja o experiență de invidiat cu VBA, atunci această carte vă va îmbogăți și crește cunoștințele, completându-le cu noi tehnici și exemple din viața reală.

Versiune pdf editată și prin amabilitatea .

Carte: :
John Walkenbach
Editor: Wiley
Format: PDF
Pagini: 1308
Marimea: 11,9 MB
Calitate: Excelent
Limba: Engleză
Anul publicării: 2010
Această carte se concentrează pe Visual Basic pentru aplicații (VBA), limbajul de programare încorporat în Excel (și pe alte aplicații care alcătuiesc Microsoft Office). Mai precis, vă va arăta cum să scrieți programe care automatizează diverse sarcini în Excel. Această carte acoperă totul, de la înregistrarea macrocomenzi simple până la crearea de aplicații și utilități sofisticate orientate către utilizator. Această carte nu acoperă Microsoft Visual Studio Tools for Office (VSTO). VSTO este o tehnologie relativ nouă care utilizează Visual Basic .NET și Microsoft Visual C#. VSTO poate fi folosit și pentru a controla Excel și alte aplicații Microsoft Office.
Aceasta nu este o carte pentru utilizatorii începători de Excel. Dacă nu aveți experiență cu Excel, o alegere mai bună ar putea fi Biblia Excel 2010, care oferă o acoperire cuprinzătoare a tuturor caracteristicilor Excel. Această carte este destinată utilizatorilor de toate nivelurile.

Carte: : Programare profesională VBA în Excel 2010
John Walkenbach
Editor: Dialectică
Format: PDF
Pagini:920
Marimea: 22,1 MB
Calitate: Excelent
Limba: Rusă
Anul publicării: 2010 Subiectul acestei cărți este limbajul de programare Visual Basic pentru aplicații (VBA), care este încorporat în Excel, precum și în alte aplicații incluse în Microsoft Office. Descrie în detaliu crearea de programe care automatizează execuția diferitelor sarcini în Excel și, de asemenea, acoperă o gamă largă de alte subiecte - de la scrierea celor mai simple macrocomenzi până la crearea celor mai complexe aplicații și utilități concepute pentru interacțiunea cu utilizatorul. Această carte nu descrie pachetul software Microsoft Visual Studio Tools for Office (VSTO). Este o implementare a unei tehnologii relativ noi, folosind Visual Basic .NET și Microsoft Visual C#. VSTO poate fi, de asemenea, utilizat pentru a controla comportamentul Excel și al altor aplicații Microsoft Office.

Această carte nu este destinată utilizatorilor începători de Excel. Dacă nu aveți experiență cu această aplicație, atunci citiți mai întâi cartea Biblia utilizatorului Excel 2010, care detaliază toate caracteristicile Excel (se adresează utilizatorilor de toate nivelurile).


Carte:Tutorial VBA
Garnaev A.
Editor: bhv
Pagini: 512
Format: html cu imagini în rar
ISBN: 5-8206-0067-3
Marimea: 2,22 MB

Excelent

Limba: Engleză
Anul publicării: 2009

Microsoft Excel este mult mai mult decât o simplă foaie de calcul. Odată cu introducerea Editorului Visual Basic în Excel 97, urmată de stabilitatea îmbunătățită semnificativ a Excel 2000, Excel a devenit o platformă de dezvoltare respectată în sine. Aplicațiile Excel se găsesc acum alături de cele bazate pe C++, Java și platforma de dezvoltare .NET, ca parte a suită de bază de aplicații corporative esențiale.
Din păcate, Excel este încă considerat prea des ca o platformă de hobby, că oamenii dezvoltă aplicații Excel doar în timpul liber pentru a automatiza sarcini minore. O scurtă privire asupra multor cărți Excel VBA pare să confirme această opinie. Aceste cărți se concentrează pe elementele de bază ale automatizării sarcinilor Excel folosind VBA. Această carte este prima de acest gen care oferă o explicație detaliată a modului de utilizare a Excel ca platformă pentru dezvoltarea aplicațiilor profesionale de calitate.
În timp ce majoritatea celorlalte platforme de dezvoltare majore par să aibă un text standard de facto care explică cele mai bune practici acceptate de comun acord pentru arhitectura, proiectarea și dezvoltarea aplicațiilor folosind această platformă, până acum Excel nu a avut. Această carte încearcă să umple acest gol. Autorii sunt dezvoltatori profesioniști de Excel care creează aplicații bazate pe Excel pentru clienți, de la persoane fizice până la cele mai mari corporații multinaționale. Această carte explică abordările pe care le folosim atunci când proiectăm, dezvoltăm, distribuim și susținem aplicațiile pe care le scriem pentru clienții noștri.
Această carte a fost furnizată de utilizator

Top articole similare