Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Vijesti
  • Primjeri Vba excel programa. Osnove VBA programiranja i stvaranje makronaredbi u aplikacijama Microsoft Officea

Primjeri Vba excel programa. Osnove VBA programiranja i stvaranje makronaredbi u aplikacijama Microsoft Officea

Ukratko smo se upoznali sa snimanjem makronaredbe pomoću Excel snimača. Sada ćemo proći u ovu džunglu i napisati nekoliko jednostavnih makronaredbi kao primjer. U jednom od primjera, po tradiciji, pokazat ćemo kako se radi s dijaloškim okvirom tipa "Poruka", u drugom ćemo proširiti naš dijaloški okvir.

Primjer 1: Jednostavna dijaloška poruka msgBox u VBA

Nećemo odstupiti od tradicije početka svih primjera programiranja. Napišimo makro koji će nam, kada se pokrene, dati okvir za poruku s natpisom "Hello World". Istodobno, razmislite o radu s prilagođenim dijalozima.

Sada ćemo pisati makronaredbe samo u ručnom načinu rada, bez snimača!

Dakle, da biste stvorili makronaredbu, morate otvoriti prozor svog omiljenog uređivača Visual Basica (VB). Da biste to učinili, izvršite sljedeće korake: Service-Macro-EditorVizualniOsnovni, temeljni(Alt+F11).


Otvorit će se prozor MS Visual Basic Editor.

Ako nemate lijeve prozore, morate ih omogućiti. Da biste to učinili, pritisnite F4 - Otvara prozor svojstava Svojstvaprozori, a tipkovnički prečac Ctrl + R - otvara prozor projektistraživač. Bez ovih prozora teško je raditi u budućnosti. Svi! Napravljeno.

Što vidimo na prozoru projekt? Ovaj prozor odražava istu strukturu naše knjige. Predmeti knjige - List 1, 2, 3, Ova knjiga. Te ćemo objekte detaljnije proučiti u sljedećim člancima, ali za sada se vraćam na primjer.

Što trebate učiniti da počnete pisati kod? Morate kreirati modul. Napomena: Općenito, u budućnosti preporučujem odvajanje koda za rukovanje u različite module. To će olakšati razumijevanje koda i stvoriti red u strukturi.

Napravite modul: Insert-Module

Pred nama se otvorio prazan prozor modula koji podsjeća na bilježnicu. Takav smo prozor već vidjeli kada smo snimili prvi makro u . Prema pravilima "dobrog ponašanja" dajmo naziv našem modulu, nazovimo ga " makroknjiga". Da biste to učinili, idite na prozor sa svojstvima i unesite naziv u polje (Ime)

Idite na prozor za uređivanje koda i napišite sljedeće:

Spreman! Otvorite prozor radne knjige Excel, kliknite Alt+F8 i pogledajte naš makro "Halo"

Sve što ostaje je " Trčanje". Kao rezultat makronaredbe, primit ćemo poruku sljedećeg oblika i sadržaja:

Primjer 2: Prošireni dijaloški okvir msgBox u VBA

Razmotrite drugu vrstu dijaloških poruka koje sadrže dodatne gumbe "Da", "Ne", "Odustani"

Prijeđimo na kod naše makronaredbe "Hello" i dodajmo naredbi msgbox sljedeće:

MsgBox"Zdravo, svijet!", vbYesNoCancel, "Moja makronaredba"

Imajte na umu da kada stavite zarez iza "Hello, World!", trebali biste imati popis svih dostupnih tipova dijaloških okvira.

Eksperimentirajte sa svakim da biste razumjeli.

Pokrenimo naš makro

Sada imamo potpuno drugačiji oblik komunikacije.

To je sve za sada. Pratite nas za članke i tutorijale. Ako imate bilo kakvih pitanja, rado ću odgovoriti, a ako bude potrebno, napisat ću članak s obrazloženjem.

Video: Primjer kako msgbox radi u vba

Počnimo s jednostavnom VBA Sub procedurom kao primjerom. Pohranjuje se u VBA modul i izračunava zbroj prvih stotinu pozitivnih cijelih brojeva. Na kraju izračuna, procedura prikazuje poruku s rezultatom.

Sub VBA_Demo()
« Primjer jednostavne VBA procedure
Dim Total As Long, i Dokle god
Ukupno = 0
Za i = 1 do 100
Ukupno = Ukupno + i
Sljedeći i
MsgBox Ukupno
kraj pod

Preuzmite bilješku u formatu ili

Ovaj postupak koristi neke popularne jezične elemente:

  • komentar (niz koji počinje apostrofom);
  • izjava deklaracije varijable (redak počinje ključnom riječi Dim);
  • dvije varijable (Ukupno i i);
  • dva operatora dodjele (Total = 0 i Total = Total + i);
  • ciklička struktura (Za–Sljedeći);
  • VBA funkcija (MsgBox).

Komentari

Možete koristiti novi redak za komentar ili umetnuti komentar nakon izjave u istom retku.

U nekim slučajevima želite testirati postupak bez umetanja uputa ili čak cijelog skupa uputa u njega. Umjesto brisanja odgovarajućeg iskaza, dovoljno ga je pretvoriti u komentar dodavanjem apostrofa na početku retka. Nakon toga, VBA će zanemariti izjavu (ili izjave) prilikom izvršavanja procedure. Da biste komentar pretvorili u izjavu, samo uklonite apostrof.

Varijable, vrste podataka i konstante

Varijabilna je imenovano mjesto za pohranjivanje podataka u memoriju računala. Varijable mogu sadržavati podatke različitih tipova. U nazivima možete koristiti slova, brojeve i neke interpunkcijske znakove, ali slovo se uvijek mora unijeti prvo u naziv varijable. VBA ne prepoznaje velika i mala slova u nazivima varijabli. Ne možete koristiti razmake ili točke u imenima, ali možete odvojiti riječi podvlakama.

VBA koristi puno rezerviranih riječi koje se ne smiju koristiti kao imena varijabli ili procedura.

VBA tumač olakšava život programerima automatskim rukovanjem bilo kojom vrstom . Međutim, to je ispunjeno negativnim posljedicama - sporo izvođenje operacija i manje učinkovito korištenje memorije. Kao rezultat toga, dopuštanje VBA-u da samostalno definira tipove podataka može naići na probleme s pokretanjem velikih ili složenih aplikacija.

Preporuča se da odaberete vrstu podataka koja koristi minimalni broj bajtova za pohranjivanje vrijednosti. Excel koristi tip podataka Double za izvođenje matematičkih izračuna u radnim listovima. Preporuča se koristiti ga u procesu obrade brojeva u VBA kako bi se osigurala ista točnost izračuna.

Postoje tri vrste varijabilnih opsega:

Rad s konstantama

Ponekad je potrebno koristiti imenovanu vrijednost ili niz koji se nikada ne mijenja – konstantu. Ako se postupak više puta odnosi na određenu vrijednost, kao što je kamatna stopa, trebali biste tu vrijednost deklarirati kao konstantu i koristiti naziv konstante, a ne njezinu vrijednost, u izrazima. Ova tehnika ne samo da čini program čitljivijim, već i olakšava kasniju promjenu koda – dovoljno je promijeniti samo jednu instrukciju, a ne nekoliko.

Operator Const koristi se za deklariranje konstanti. Na primjer,

Const NumQuarters kao cijeli broj = 4

Kao i varijable, konstante imaju opseg. Ako pokušate promijeniti vrijednost konstante u VBA kodu, dobit ćete pogrešku (što je i očekivano). Konstanta je konstantna vrijednost, a ne varijabla. Postoji niz unaprijed definiranih konstanti u Excelu i VBA-u koje se mogu koristiti bez deklariranja. Ne morate čak ni znati značenje ovih konstanti da biste ih koristili. Prilikom pisanja makronaredbi obično se koriste konstante, a ne vrijednosti. Sljedeći postupak koristi ugrađenu konstantu za promjenu orijentacije stranice aktivnog lista u pejzaž:

Sub SetToLandscape()
ActiveSheet.PageSetup.Orientation = xlLandscape
kraj pod

Stvarna vrijednost varijable xlLandscape je 2. Prozor Object Browser sadrži popis svih Excel i VBA konstanti. Da biste otvorili preglednik objekata u VBE, pritisnite tipku .

U VBA, datum i vrijeme su definirani kao vrijednosti između # znakova

Konst prvog dana kao datum = #1/1/2007#
Konstantno podne = #12:00:00#

Datumi su uvijek definirani u formatu mjesec/dan/godina, čak i ako je sustav konfiguriran za prikaz podataka u drugom formatu.

Operatori dodjele

Operator dodjele je VBA izraz koji izvodi matematički izračun i dodjeljuje rezultat varijabli ili objektu. U sustavu pomoći Excel, izraz je definiran kao kombinacija ključnih riječi, operatora, varijabli i konstanti. Ova kombinacija kao rezultat vraća niz, broj ili objekt. Izraz može izvesti izračun, obraditi znakove ili testirati podatke.

Velik broj operacija koje se izvode u VBA uključuje razvoj (i otklanjanje pogrešaka) izraza. Ako znate kreirati formule u Excelu, onda nećete imati problema s kreiranjem izraza u VBA. U formuli radnog lista Excel, rezultat se prikazuje u ćeliji. S druge strane, VBA izraz može dodijeliti vrijednost varijabli ili se koristiti kao vrijednost svojstva. U VBA, operator dodjele je znak jednakosti (=).

Nizovi

Niz je skupina elemenata istog tipa koji dijele zajednički naziv; određeni element niza referencira se pomoću naziva niza i indeksa. Na primjer, možete definirati niz od 12 nizova tako da svaka varijabla odgovara nazivu mjeseca. Ako nizu date naziv MonthNames, prvi element niza možete pozvati kao MonthNames (0), drugi element kao MonthNames (1) i tako dalje do MonthNames (11).

Možete deklarirati niz koji sadrži točno 100 cijelih brojeva na sljedeći način:

Dim MyArray(1 Zatim 100) kao cijeli broj

Prema zadanim postavkama, VBA nizovi koriste nulu kao prvi element. Ako želite da prvi indeks svih nizova bude jedan, tada morate deklarirati sljedeće prije postupka prvog modula: Opcija Baza 1

Dinamički niz nema unaprijed definiran broj elemenata. Deklariše se s praznim vrijednostima u zagradama: Dim MyArray() As Integer. Međutim, prije nego što se dinamički niz može koristiti u programu, naredba ReDim mora se koristiti da kaže VBA koliko elemenata ima u nizu. To se često radi pomoću varijable čija vrijednost nije poznata dok se postupak ne pokrene. Na primjer, ako je varijabli x dodijeljen broj, veličina niza se određuje pomoću sljedeće izjave: ReDim MyArray (1 do x).

Objektne varijable

Varijabla objekta je varijabla koja predstavlja cijeli objekt, kao što je raspon ili radni list: Dim InputArea As Range. Da biste dodijelili objekt varijabli, koristite ključnu riječ Set: Postavite InputArea = Range("C16:E16").

Ugrađene funkcije

VBA ima niz ugrađenih funkcija koje pojednostavljuju izračune i operacije. Na primjer, funkcija VBA UCase koja pretvara niz u velika slova ekvivalentna je funkciji Excel UPPER. Da biste koristili Excel funkciju u VBA naredbi, prethodite nazivu funkcije sljedećim izrazom:

Application.WorksheetFunction

Važno je razumjeti da ne možete koristiti funkcije programa Excel za koje VBA pruža ekvivalentne funkcije. Na primjer, VBA vam ne dopušta pristup funkciji Excel ROOT (SQRT) jer VBA ima vlastitu verziju ove funkcije: Sqr. Dakle, sljedeća izjava daje pogrešku:

MsgBox Application.WorksheetFunction.Sqrt(123)

Funkcija MsgBox jedna je od najkorisnijih u VBA. Između ostalog, to je izvrstan alat za otklanjanje pogrešaka jer u bilo kojem trenutku možete umetnuti funkciju MsgBox kako biste pauzirali program i prikazali rezultat izračuna ili dodjele. Funkcija MsgBox ne samo da vraća vrijednost, već i prikazuje dijaloški okvir u kojem korisnik može izvršiti određene radnje. Vrijednost koju vraća funkcija MsgBox je korisnikov odgovor na prikazani upit. Funkcija MsgBox može se koristiti čak i kada odgovor korisnika nije potreban, ali je potrebno prikazati poruku. Sintaksa funkcije MsgBox:

MsgBox(poruka[, gumbi] [, naslov] [, datoteka_pomoći, kontekst])

  • Poruka (obavezni argument) - poruka koja se prikazuje u dijaloškom okviru.
  • Gumbi (izborni argument) – vrijednost koja određuje koji se gumbi i ikone (ako ih ima) prikazuju u okviru za poruke. Koristite ugrađene konstante (na primjer, vbYesNo).
  • Naslov (opcijski argument) - tekst koji se prikazuje u naslovnoj traci okvira za poruke. Prema zadanim postavkama, prikazuje se tekst Microsoft Excela.
  • help_file (opcijski argument) - naziv datoteke pomoći koja odgovara okviru s porukom.
  • Kontekst (opcijski argument) - identifikator konteksta teme pomoći. Predstavlja određenu temu pomoći za prikaz. Ako koristite argument konteksta, morate koristiti i argument helpfile.

Rezultirajuću vrijednost možete dodijeliti varijabli ili možete koristiti funkciju bez operatora dodjele. U primjeru ispod, rezultat je dodijeljen varijabli Ans.

Ans = MsgBox(" Nastaviti?" , vbYesNo + vbQuestion, " Reci mi ")
Ako je Ans = vbNo, onda izađi iz Sub

Imajte na umu da je vrijednost argumenta gumba zbroj dviju ugrađenih konstanti (vbYesNo + vbQuestion). Konstanta vbYesNo uzrokuje da okvir s porukom prikazuje dva gumba, jedan s oznakom Da i jedan s Ne. Dodavanje vbQuestion argumentu također će prikazati upitnik. Čim se izvrši prva naredba, varijabla Ans će uzeti jednu od dvije vrijednosti predstavljene konstantama vbYes i vbNo. U ovom primjeru, postupak se završava kada se klikne na gumb Ne.

Upravljanje objektima i zbirkama

VBA nudi dvije konstrukcije koje vam pomažu da lakše upravljate objektima i zbirkama. Konstrukt With-End With omogućuje izvođenje više operacija na jednom objektu. Da biste razumjeli kako funkcionira, razmotrite sljedeću proceduru koja mijenja šest svojstava odabranog objekta (pod pretpostavkom da je odabran objekt Range).

SubChangeFontl()
Selection.Font.Name = " Cambria "
Selection.Font.Bold = Točan odabir.Font.Italic = Točno
Odabir.Veličina fonta = 12
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.ThemeColor = xlThemeColorAccentl
kraj pod

Ovaj se postupak može prepisati pomoću konstrukcije With - End With. Dolje prikazan postupak radi potpuno isto kao i prethodni.

SubChangeFont2()
S Selection.Font
.Name = "Cambria"
.Podebljano = Istina
.Italic = Istina
.Veličina=12
.podcrtavanje = xlUnderlineStyleSingle
.ThemeColor = xlThemeColorAccentl
završiti s
kraj pod

Pretpostavimo da odlučite izvršiti radnju na svim objektima u kolekciji ili trebate procijeniti sve objekte u kolekciji i izvršiti radnju kada su ispunjeni određeni uvjeti. Ovo je idealna situacija za korištenje konstrukcije Za svaki - sljedeći. Sintaksa konstrukcije:

Za svakoga element U kolekcija
[upute]
[upute]
Sljedeći[ element]

Na primjer:

Sub CountSheets()
Zatamnjena stavka kao radni list
Za svaku stavku u ActiveWorkbook.Radni listovi
Naziv stavke MsgBox
Sljedeća stavka
kraj pod

Sljedeći primjer zatvara sve prozore osim aktivnog:

Sub CloseInactive()
Dim Book kao radna bilježnica
Za svaku knjigu u radnim bilježnicama
Ako Knjiga.Naziv<>ActiveWorkbook.Name Zatim Book.Close
Sljedeća knjiga
kraj pod

Kontrola izvršenja koda

Neke VBA procedure počinju se izvršavati od prvih redaka koda. Međutim, ponekad je potrebno kontrolirati slijed operacija preskakanjem pojedinačnih naredbi, ponovnim izvršavanjem nekih naredbi i provjeravanjem uvjeta kako bi se odredila sljedeća radnja koju treba poduzeti procedurom.

Naredba GoTo preusmjerava izvršavanje programa na novu instrukciju, koja je označena na poseban način (tekstualni niz koji završava dvotočkom ili broj koji završava razmakom, naveden prije instrukcije). Sljedeći postupak koristi funkciju VBA InputBox za dobivanje korisničkog imena. Ako se korisničko ime razlikuje od Howarda, tada procedura skače na oznaku WrongName, gdje završava svoj rad. Inače, postupak obavlja dodatne operacije. Naredba Exit Sub završava izvođenje procedure.

Pod GoToDemo()
Korisničko ime = InputBox(" Unesite svoje ime: ")
Ako Korisničko ime<>"Howard" Zatim Idi na pogrešno ime
MsgBox ("Zdravo Howarde...")
" - [Ovdje se unosi dodatni kod] -
izlaz pod
Pogrešan naziv:
MsgBox "Oprostite, samo Howard može pokrenuti ovu proceduru."
kraj pod

U stvarnosti, naredba GoTo potrebna je samo za hvatanje pogrešaka (gornji kod je loš primjer koji se ne bi trebao koristiti).

Možda se konstrukcija If-Then najčešće koristi za grupiranje VBA naredbi:

Ako stanje Zatim upute_istina

Na primjer

Sub GreetMe()
Ako Vrijeme< 0.5 Then
MsgBox "Dobro jutro"
Vrijeme samog sebe >= 0,5 i vrijeme< 0.75 Then
MsgBox "Zdravo"
Drugo
MsgBox "Dobra večer"
Završi ako
kraj pod

VBA koristi sustav datuma i vremena sličan onom koji se koristi u Excelu. Vrijeme dana je izraženo kao razlomak, na primjer, podne je predstavljeno kao 0,5. Vrijednost 0,75 predstavlja vrijeme 18:00 - tri četvrtine dana i trenutak kada dan prelazi u večer. Ugniježđene strukture If-Then prilično su glomazne. Stoga se preporuča koristiti ih samo za donošenje jednostavnih binarnih odluka. Ako trebate birati između tri ili više opcija, preporučljivo je obratiti se na konstrukciju Select Case.

Sljedeći postupak koristi funkciju VBA WeekDay za određivanje je li trenutni dan subota ili nedjelja (funkcija Weekday vraća 1 ili 7). Zatim se prikazuje odgovarajuća poruka.

Sub GreetUserlO
Odaberite dan u tjednu (sada)
Slučaj 1, 7
MsgBox "Vikend je"
Slučaj Drugi
MsgBox "Nije vikend"
Kraj Odaberite
kraj pod

VBA interpreter izlazi iz konstrukcije Select Case čim se pronađe True uvjet. Stoga, za maksimalnu učinkovitost, najvjerojatniji slučaj treba prvo testirati.

Ciklus je proces ponavljanja skupa uputa. Možda unaprijed znate koliko puta bi se petlja trebala ponoviti ili je ta vrijednost određena varijablama u programu. Najjednostavniji primjer dobre petlje je For-Next:

Za brojač = Početak Da kraj
[upute]
[upute]
Sljedeći[ brojač]

Sljedeći postupak zbraja kvadratne korijene prvih 100 cijelih brojeva:

Pod zbroj kvadratnih korijena()
Dim Sum kao dvostruki
Dim Count As Integer
Zbroj = 0
Za Count = 1 do 100
Zbroj = Zbroj + Sqr(Broj)
Sljedeći broj
MsgBox Zbroj
kraj pod

Vrijednost varijable Step u petlji For-Next može biti negativna. Sljedeći postupak briše retke 2, 4, 6, 8 i 10 u aktivnom listu:

Podbrisanje redaka()
Dim RowNum As Long
Za Broj reda = 10 do 2 korak -2
Redovi(RowNum).Izbriši
Sljedeći broj redaka
kraj pod

For-Next petlje također mogu sadržavati jedan ili više naredbi Exit For. Kada program naiđe na ovu naredbu, odmah izlazi iz petlje:

Sub ExitForDemo()
Dim MaxVal As Double
Dim Row As Long
MaxVal = Application.WorksheetFunction.Max(Raspon("A:A"))
Za red = 1 do 1048576
Ako ćelije(Row, 1).Vrijednost = MaxVal Tada
Izlaz za
Završi ako
sljedeći red
MsgBox "Maksimalna vrijednost u retku" & Red
Ćelije (Red, 1). Aktivirajte
kraj pod

Maksimalna vrijednost u stupcu izračunava se pomoću funkcije Excel MAX. Ova vrijednost se zatim dodjeljuje varijabli MaxVal. Petlja For-Next provjerava svaku ćeliju u stupcu. Ako je navedena ćelija jednaka MaxVal, naredba Exit For završava proceduru. Međutim, prije izlaska iz petlje, postupak obavještava korisnika o lokaciji željene ćelije i aktivira je.

Petlja Do While se izvršava sve dok je zadani uvjet zadovoljen. Petlja Do While može imati jednu od sljedeće dvije sintakse.

Čini
[upute]
[upute]
petlja

Čini
[upute]
[upute]
petlja

Procedura EnterDates1 unosi datume tekućeg mjeseca u stupac radnog lista, počevši od aktivne ćelije:

SubEnterDatesl()
" Do While petlje, uvjet se provjerava na početku
Zatamnite datum kao datum
Datum = Serijski datum (godina (datum), mjesec (datum), 1)
Učinite dok Mjesec (Datum) = Mjesec (Datum)
ActiveCell = Datum
Datum = Datum + 1
ActiveCell.Offset(1, 0).Aktiviraj
petlja
kraj pod

Ovaj postupak koristi varijablu TheDate, koja pohranjuje datume zabilježene na radnom listu. Prvi dan tekućeg mjeseca koristi se za inicijalizaciju varijable. Tijekom izvođenja petlje, vrijednost varijable TheDate je upisana u aktivnu ćeliju, zatim je ta vrijednost povećana za jedan, nakon čega se aktivira sljedeća ćelija. Petlja se nastavlja sve dok vrijednost mjeseca dodijeljena varijabli TheDate ne odgovara mjesečnoj vrijednosti trenutnog datuma.

Do While petlje također mogu uključivati ​​jedan ili više naredbi Exit Do. Kada se postigne naredba Exit Do, petlja se završava i kontrola se prenosi na izraz koji slijedi nakon naredbe Loop.

Struktura petlje Do Until ima mnogo zajedničkog s konstrukcijom Do While. Jedina razlika je kako se provjerava uvjet petlje. U varijanti Do While, petlja se izvodi sve dok je uvjet istinit. U petlji Do Until, petlja se izvodi dok se ne ispuni uvjet. Struktura Do Until također može biti predstavljena s dvije vrste sintakse.

Na temelju knjige. - M: Dijalektika, 2013. - S. 211-251.

Malo ljudi zna da se prva verzija popularnog proizvoda Microsoft Excel pojavila 1985. godine. Od tada je prošao kroz nekoliko modifikacija i tražen je od strane milijuna korisnika diljem svijeta. U isto vrijeme, mnogi ljudi rade s samo malim dijelom mogućnosti ovog procesora proračunskih tablica i ne shvaćaju kako bi im mogućnost programiranja u Excelu mogla olakšati život.

Što je VBA

Programiranje u Excelu provodi se pomoću programskog jezika Visual Basic for Application, koji je izvorno ugrađen u najpoznatiji Microsoftov procesor proračunskih tablica.

Stručnjaci navode njegove prednosti kao komparativnu lakoću razvoja. Kao što pokazuje praksa, čak i korisnici koji nemaju profesionalne vještine programiranja mogu svladati osnove VBA. Značajke VBA uključuju izvršavanje skripte u okruženju uredske aplikacije.

Nedostatak programa su problemi povezani s kompatibilnošću različitih verzija. Oni su uzrokovani činjenicom da se VBA programski kod odnosi na funkcionalnost koja je prisutna u novoj verziji proizvoda, ali ne i u staroj. Također, prevelika otvorenost koda za modifikacije od strane autsajdera također je nedostatak. Međutim, Microsoft Office kao i IBM Lotus Symphony omogućuju korisniku šifriranje početnog koda i postavljanje lozinke za pregled.

Objekti, zbirke, svojstva i metode

Upravo te koncepte trebaju razumjeti oni koji će raditi u VBA okruženju. Prije svega, morate razumjeti što je objekt. U Excelu je to radni list, radna knjiga, ćelija i raspon. Ovi objekti imaju posebnu hijerarhiju, t.j. međusobno su podređeni.

Glavni je Application, koji odgovara samom programu Excel. Zatim dolaze radne knjige, radni listovi, a također i raspon. Na primjer, da biste pristupili ćeliji A1 na određenom radnom listu, morate navesti put koji uzima u obzir hijerarhiju.

Što se tiče pojma "kolekcija", riječ je o skupini objekata iste klase, koja u zapisu ima oblik ChartObjects. Njegovi pojedinačni elementi također su objekti.

Sljedeći koncept su svojstva. Oni su neophodna karakteristika svakog objekta. Na primjer, za raspon je vrijednost ili formula.

Metode su naredbe koje pokazuju što treba učiniti. Prilikom pisanja koda u VBA, oni moraju biti odvojeni od objekta točkom. Na primjer, kao što će se kasnije pokazati, vrlo često se prilikom programiranja u Excelu koristi naredba Cells(1,1).Select. To znači da trebate odabrati ćeliju s koordinatama

Uz njega se često koristi Selection.ClearContents. Njegovo izvršenje znači brisanje sadržaja odabrane ćelije.

Kako započeti

Zatim trebate ići na VB aplikaciju, za što je dovoljno koristiti kombinaciju tipki "Alt" i "F11". Unaprijediti:

  • u traci izbornika koja se nalazi na vrhu prozora kliknite na ikonu pored ikone programa Excel;
  • odaberite naredbu Mudule;
  • spremite klikom na ikonu sa slikom ;
  • napišite, da tako kažemo, skicu koda.

izgleda ovako:

potprogram()

„Naš kod

Napominjemo da će redak "Naš kod" biti označen drugom bojom (zelenom), a razlog je apostrof na početku retka koji označava da slijedi komentar.

Sada možete napisati bilo koji kod i stvoriti novi alat za sebe u VBA Excelu (pogledajte primjere programa u nastavku). Naravno, onima koji su upoznati s osnovama Visual Basica bit će puno lakše. Međutim, i oni koji ih nemaju, po želji, moći će se dovoljno brzo smjestiti.

Makronaredbe u Excelu

Ovaj naziv skriva programe napisane u jeziku Visual Basic za aplikacije. Dakle, programiranje u Excelu je izrada makronaredbi sa željenim kodom. Uz ovu mogućnost, Microsoftova proračunska tablica se samostalno razvija, prilagođavajući se potrebama određenog korisnika. Sada kada razumijete kako stvoriti module za pisanje makronaredbi, možete početi gledati konkretne primjere VBA Excel programa. Najbolje je početi s najelementarnijim kodovima.

Primjer 1

Zadatak: napisati program koji će kopirati vrijednost sadržaja jedne ćelije, a zatim pisati u drugu.

Za ovo:

  • otvorite karticu "Prikaz";
  • idite na ikonu "Macros";
  • kliknite na "Snimi makro";
  • ispunite otvoreni obrazac.

Radi jednostavnosti, ostavite "Macro1" u polju "Naziv makronaredbe" i umetnite, na primjer, hh u polje "Prečac na tipkovnici" (to znači da možete pokrenuti program s blitz naredbom "Ctrl + h"). Pritisni enter.

Sada kada je snimanje makronaredbe već počelo, sadržaj ćelije se kopira u drugu. Vratite se na izvornu ikonu. Kliknite na "Snimi makro". Ova radnja označava kraj programa.

  • ponovno idite na redak "Makroi";
  • odaberite "Makro 1" s popisa;
  • kliknite "Pokreni" (ista radnja se pokreće pokretanjem tipkovničkog prečaca "Ctrl + hh").

Kao rezultat toga, događa se radnja koja je izvršena tijekom snimanja makronaredbe.

Ima smisla vidjeti kako izgleda kod. Da biste to učinili, vratite se na redak "Macros" i kliknite "Uredi" ili "Enter". Kao rezultat toga, oni se nalaze u VBA okruženju. Zapravo, sam makro kod se nalazi između redaka Sub Macro1() i End Sub.

Ako je kopiranje izvršeno, na primjer, iz ćelije A1 u ćeliju C1, tada će jedan od redaka koda izgledati kao Range(“C1”).Odaberite. U prijevodu to izgleda kao “Range(“C1”).Select, drugim riječima, skače na VBA Excel, na ćeliju C1.

Naredba ActiveSheet.Paste dovršava aktivni dio koda. To znači upisivanje sadržaja odabrane ćelije (u ovom slučaju A1) u odabranu ćeliju C1.

Primjer 2

VBA petlje pomažu vam u stvaranju raznih makronaredbi u Excelu.

VBA petlje pomažu vam u stvaranju različitih makronaredbi. Pretpostavimo da postoji funkcija y=x + x 2 + 3x 3 - cos(x). Morate stvoriti makronaredbu da biste dobili njezin raspored. To se može učiniti samo pomoću VBA petlji.

Uzmite x1=0 i x2=10 za početnu i konačnu vrijednost argumenta funkcije. Osim toga, morate unijeti konstantu - vrijednost za korak promjene argumenta i početnu vrijednost za brojač.

Svi primjeri makronaredbi Excel VBA kreiraju se prema istom postupku kao gore. U ovom konkretnom slučaju, kod izgleda ovako:

potprogram()

korak = 0,1

Učinite Dok x1< x2 (цикл будет выполняться пока верно выражение x1 < x2)

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

Ćelije(i, 1).Vrijednost = x1 (vrijednost x1 upisuje se u ćeliju s koordinatama (i,1))

Ćelije(i, 2).Vrijednost = y (vrijednost y upisuje se u ćeliju s koordinatama (i,2))

i = i + 1 (brojac aktivan);

x1 = x1 + shag (argument se mijenja za vrijednost koraka);

endsub.

Kao rezultat pokretanja ove makronaredbe u Excelu, dobivamo dva stupca, od kojih prvi sadrži vrijednosti za x, a drugi za y.

Zatim se na njima gradi grafikon na način koji je standardan za Excel.

Primjer 3

Za implementaciju petlji u VBA Excel 2010, kao iu drugim verzijama, uz već danu konstrukciju Do While, koristi se For.

Razmislite o programu koji će stvoriti stupac. U svakoj od njegovih ćelija bit će upisani kvadrati broja odgovarajućeg retka. Korištenje konstrukcije For omogućit će vam da je napišete vrlo kratko, bez korištenja brojača.

Prvo morate stvoriti makronaredbu, kao što je gore opisano. Zatim pišemo sam kod. Vjerujemo da nas zanimaju vrijednosti za 10 ćelija. Kod izgleda ovako.

Za i = 1 do 10 Dalje

Naredba se prevodi na "ljudski" jezik kao "Ponovi od 1 do 10 u koracima od jedan".

Ako je zadatak dobiti stupac s kvadratima, na primjer, sve neparne brojeve iz raspona od 1 do 11, tada pišemo:

Za i = 1 do 10 korak 1 Sljedeći.

Ovdje je korak korak. U ovom slučaju, jednako je dva. Prema zadanim postavkama, odsutnost ove riječi u ciklusu znači da je korak jedan.

Dobiveni rezultati moraju se pohraniti u ćelije s brojem (i,1). Zatim, svaki put kada se petlja pokrene, s povećanjem i za vrijednost koraka, automatski će se povećati i broj retka. Tako će kod biti optimiziran.

Općenito, kod će izgledati ovako:

potprogram()

Za i = 1 do 10 korak 1 (možete jednostavno napisati Za i = 1 do 10)

Ćelije(i, 1).Vrijednost = i ^ 2

Dalje (u određenom smislu, djeluje kao brojač i znači još jedan početak petlje)

endsub.

Ako je sve učinjeno ispravno, uključujući snimanje i pokretanje makronaredbe (pogledajte upute gore), tada će se svaki put kada se ona pozove dobiti stupac određene veličine (u ovom slučaju koji se sastoji od 10 ćelija).

Primjer 4

U svakodnevnom životu vrlo često postoji potreba za donošenjem jedne ili druge odluke ovisno o nekom stanju. Ne možete bez njih u VBA Excelu. Primjeri programa u kojima je odabran daljnji tijek algoritma, a nije unaprijed određen inicijalno, najčešće koriste konstrukciju If ...Then (za složene slučajeve) If ...Then ...END If.

Razmotrimo konkretan slučaj. Pretpostavimo da trebate stvoriti makronaredbu za "Excel" tako da je ćelija s koordinatama (1,1) napisana:

1 ako je argument pozitivan;

0 ako je argument null;

-1 ako je argument negativan.

Stvaranje takve makronaredbe za "Excel" počinje na standardni način, korištenjem "vrućih" tipki Alt i F11. Sljedeći kod je napisan sljedeće:

potprogram()

x= Ćelije(1, 1).Vrijednost (ova naredba dodjeljuje x vrijednost sadržaja ćelije na koordinatama (1, 1))

Ako je x>0 onda ćelije(1, 1).Vrijednost = 1

Ako je x=0, tada je ćelije(1, 1).Vrijednost = 0

Ako je x<0 Then Cells(1, 1).Value = -1

endsub.

Ostaje pokrenuti makro i dobiti željenu vrijednost za argument u Excelu.

VBA funkcije

Kao što ste možda primijetili, programiranje u najpoznatijoj Microsoftovoj proračunskoj tablici nije tako teško. Pogotovo ako naučite koristiti VBA funkcije. Ukupno, ovaj programski jezik, kreiran posebno za pisanje aplikacija u Excelu i Wordu, ima oko 160 funkcija. Mogu se podijeliti u nekoliko velikih skupina. To:

  • Matematičke funkcije. Primjenjujući ih na argument, dobivaju vrijednost kosinusa, prirodnog logaritma, cjelobrojnog dijela itd.
  • financijske funkcije. Zahvaljujući njihovoj prisutnosti i korištenju programiranja u Excelu, možete dobiti učinkovite alate za računovodstvene i financijske izračune.
  • Funkcije obrade niza. To uključuje Array, IsArray; lBound; UBvezan.
  • VBA Excel funkcije za red. Ovo je prilično velika skupina. Uključuje, na primjer, funkcije Space za stvaranje niza s brojem razmaka jednakim cjelobrojnom argumentu ili Asc za pretvaranje znakova u ANSI kod. Svi su oni naširoko korišteni i omogućuju vam rad s recima u Excelu, stvarajući aplikacije koje znatno olakšavaju rad s tim tablicama.
  • Funkcije konverzije tipa podataka. Na primjer, CVar vraća vrijednost argumenta Expression pretvarajući ga u tip podataka Variant.
  • Funkcije za rad s datumima. Znatno proširuju standardne, pa funkcija WeekdayName vraća naziv (pun ili djelomičan) dana u tjednu po broju. Još korisniji je Timer. Daje broj sekundi koje su protekle od ponoći do određene točke u danu.
  • Funkcije za pretvaranje brojčanog argumenta u različite brojevne sustave. Na primjer, listopad daje oktalni prikaz broja.
  • Funkcije oblikovanja. Najvažniji od njih je Format. Vraća vrijednost tipa Variant s izrazom oblikovanim prema uputama danim u deklaraciji formata.
  • itd.

Proučavanje svojstava ovih funkcija i njihove primjene značajno će proširiti opseg Excela.

Primjer 5

Pokušajmo prijeći na rješavanje složenijih problema. Na primjer:

Daje se papirnati dokument izvješća o stvarnoj visini troškova poduzeća. Potreban:

  • razviti dio predloška pomoću Excel proračunske tablice;
  • izraditi VBA program koji će zahtijevati početne podatke za popunjavanje, izvršiti potrebne izračune i njima ispuniti odgovarajuće ćelije predloška.

Razmotrimo jedno od rješenja.

Izradite predložak

Sve se radnje izvode na standardnom listu u Excelu. Slobodne ćelije rezervirane su za unos podataka o nazivu poduzeća potrošača, visini troškova, njihovoj visini i prometu. Budući da broj tvrtki (društva) za koje se sastavlja izvješće nije fiksan, ćelije za unos vrijednosti na temelju rezultata i punog imena stručnjaka nisu unaprijed rezervirane. Radni list dobiva novi naziv. Na primjer, "Օtchet".

Varijable

Da biste napisali program za automatsko popunjavanje predloška, ​​morate odabrati zapis. Oni će se koristiti za varijable:

  • NN - broj trenutnog retka tablice;
  • TP i TF - planirani i stvarni promet;
  • SF i SP - stvarni i planirani iznos troškova;
  • IP i IF - planirana i stvarna razina troškova.

Označimo istim slovima, ali s "prefiksom" Itog akumulacije ukupnog na zadanom stupcu. Na primjer, ItogTP se odnosi na stupac tablice pod nazivom "planirani promet".

Rješavanje problema korištenjem VBA programiranja

Koristeći uvedenu notaciju dobivamo formule za odstupanja. Ako je potrebno izvršiti izračun u%, imamo (F - P) / P * 100, a u iznosu - (F - P).

Rezultate ovih izračuna najbolje je odmah unijeti u odgovarajuće ćelije Excel proračunske tablice.

Za stvarne i prognozirane ukupne vrijednosti dobiva se pomoću formula ItogP=ItogP + P i ItogF=ItogF+ F.

Za odstupanja koristite = (ItogF - ItogP) / ItogP * 100 ako se izračun provodi kao postotak, a u slučaju ukupne vrijednosti - (ItogF - ItogP).

Rezultati se ponovno odmah zapisuju u odgovarajuće ćelije, tako da ih nema potrebe dodijeliti varijablama.

Prije pokretanja stvorenog programa, morate spremiti radnu knjigu, na primjer, pod nazivom "Izvješće1.xls".

Gumb "Kreiraj tablicu izvješća" potrebno je pritisnuti samo 1 put nakon unosa informacija zaglavlja. Postoje i druga pravila kojih treba biti svjesna. Konkretno, gumb "Dodaj redak" mora se kliknuti svaki put nakon unosa vrijednosti za svaku aktivnost u tablici. Nakon unosa svih podataka potrebno je kliknuti gumb "Završi", a zatim se prebaciti na prozor "Excel".

Sada znate kako riješiti probleme za Excel pomoću makronaredbi. Mogućnost korištenja vba excela (vidi primjere programa iznad) može biti potrebna i za rad u okruženju trenutno najpopularnijeg uređivača teksta "Word". Konkretno, možete kreirati gumbe izbornika pisanjem, kao što je prikazano na samom početku članka, ili pisanjem koda, zahvaljujući kojem se mnoge operacije nad tekstom mogu izvesti pritiskom na dežurne tipke ili putem kartice "Prikaz" i ikonu "Makroi".


Knjiga: Korištenje makronaredbi u Excelu.

Stranice: 507

Format: DJVU
Veličina: 8,02 Mb

Unatoč moćnoj funkcionalnosti koju pruža Excel korisničko sučelje, postoje neki zadaci koji se mogu izvesti samo programski. Knjiga "Korištenje makronaredbi u Excelu" uvod je u programiranje u Excel VBA, sadrži primjere rješavanja različitih praktičnih problema koji se javljaju pri radu u Excelu.Materijal knjige namijenjen je korisnicima Excela, kao i programerima koji nisu upoznati s Excel objektnim modelom. Uz odjeljke o razvoju makronaredbi za Excel 2002, ovo je uvodni tečaj o pisanju makronaredbi i programa u Excel okruženju.

Knjiga: Intenzivni vikend programiranja u Excelu

Izdavač: Dijalektika
Stranice: 421
Format: DJVU
Veličina: 12,6 MB
kvaliteta: Normalan
Jezik: ruski
Žanr: programiranje
Godina izdavanja: 2004
ISBN: 5-8459-0687-3

Mogućnosti programa Microsoft Excel nisu ograničene na rad s podatkovnim tablicama. Iza alata za proračunske tablice stoji moćan programski jezik - VBA (Visual Basic za aplikacije). Međutim, gotovo svaki korisnik ima priliku naučiti pisati programe na VBA jeziku za rješavanje najrazličitijih zadataka u Excelu - od mehaničkog izvođenja izračuna do stvaranja sustava za unos podataka s vlastitim zaslonskim obrascima i s vjerojatnošću revizije ispravnosti vrijednosti koje se upisuju.

Knjiga: Programiranje u VBA 2002

kvaliteta: Normalan
Jezik: ruski
Žanr: programiranje

Knjiga sadrži tečaj programiranja u Visual Basicu za aplikacije (VBA), koji je osnovni jezik u Microsoft Office aplikacijama (Word, Excel, Access, PowerPoint, FrontPage, Visio itd.). Knjiga je namijenjena početnicima u programiranju u Windows okruženju koristeći Word-, Excel-, PowerPoint-objekte.Dio knjige posvećen je razvoju Office aplikacija koje koriste baze podataka pohranjene u zasebnim datotekama i na udaljenim poslužiteljima.Materijal knjige dovoljan je za učenje osnova jezika Visual Basic i stvaranje jednostavnih makronaredbi koje pomažu automatizirati rutinski ponavljajući rad s dokumentima, proračunskim tablicama, dijagramima, prezentacijama itd., kao i za razvoj prilično složenih aplikacija za obradu baze podataka pomoću dijaloga kutije koje korisniku pružaju najmodernije alate sučelja.Većina primjera u knjizi posvećena je aktualnim poslovnim temama, pa će knjiga biti vrlo korisna menadžerima različitih razina, koja je, po svemu sudeći, namijenjena i za Microsoft Office i za ugrađeni programski jezik VBA.
Dodaci na kraju knjige mogu poslužiti kao zgodna referenca pri radu i s VBA i s običnim VB-om.

Knjiga: Profesionalno VBA programiranje u Excelu 2003
John Walkenbach
Izdavač: Williams
Format: PDF
Veličina: 11 MB
kvaliteta: Izvrsno
Jezik: ruski
Godina izdavanja: 2005
ISBN: 5-8459-0771-3
Uz knjigu dolazi i disk.

Mnoge knjige su napisane u Excelu. No, ova knjiga je posebna - razmatra razvoj aplikacija za proračunske tablice u širem kontekstu. VBA je samo jedna komponenta prilagođenog okruženja za razvoj aplikacija, iako bitna. Ova će vam knjiga pomoći razumjeti zamršenosti razvoja aplikacija pomoću VBA. Opisuje mnoge značajke jezika VBA, njegove mogućnosti i okruženje korištenja.Najprije će vam biti ponuđen pregled mogućnosti programa, zatim ćete prijeći na definiranje koncepata VBA programiranja, a zatim se upoznati s sam jezik. Ako ste početnik VBA programer, tada ćete u ovoj publikaciji pronaći sve potrebne informacije koje će vam biti potrebne za daljnji rad. ako već imate zavidno iskustvo s VBA-om, onda će ova knjiga obogatiti i povećati vaše znanje, nadopunjavajući ga novim tehnikama i primjerima iz stvarnog života.

Pdf verzija uređena i ljubaznošću .

Knjiga: :
John Walkenbach
Izdavač: Wiley
Format: PDF
Stranice: 1308
Veličina: 11,9 MB
kvaliteta: Izvrsno
Jezik: Engleski
Godina izdavanja: 2010
Ova se knjiga fokusira na Visual Basic za aplikacije (VBA), programski jezik ugrađen u Excel (i druge aplikacije koje čine Microsoft Office). Točnije, pokazat će vam kako napisati programe koji automatiziraju različite zadatke u Excelu. Ova knjiga pokriva sve, od snimanja jednostavnih makronaredbi do stvaranja sofisticiranih korisnički orijentiranih aplikacija i uslužnih programa. Ova knjiga ne pokriva alate Microsoft Visual Studio za Office (VSTO). VSTO je relativno nova tehnologija koja koristi Visual Basic .NET i Microsoft Visual C#. VSTO se također može koristiti za upravljanje Excelom i drugim Microsoft Office aplikacijama.
Ovo nije knjiga za početnike u Excelu. Ako nemate iskustva s Excelom, bolji izbor bi mogao biti Excel 2010 Bible, koji pruža sveobuhvatan pregled svih značajki Excela. Ta je knjiga namijenjena korisnicima svih razina.

Knjiga: : Profesionalno VBA programiranje u programu Excel 2010
John Walkenbach
Izdavač: Dijalektika
Format: PDF
Stranice:920
Veličina: 22,1 MB
kvaliteta: Izvrsno
Jezik: ruski
Godina izdavanja: 2010 Predmet ove knjige je programski jezik Visual Basic za aplikacije (VBA), koji je ugrađen u Excel kao i druge aplikacije uključene u Microsoft Office. Detaljno opisuje izradu programa koji automatiziraju izvršavanje raznih zadataka u Excelu, a također pokriva širok raspon drugih tema - od pisanja najjednostavnijih makronaredbi do stvaranja najsloženijih aplikacija i uslužnih programa dizajniranih za interakciju korisnika. Ova knjiga ne opisuje softverski paket Microsoft Visual Studio Tools for Office (VSTO). To je implementacija relativno nove tehnologije koja koristi Visual Basic .NET i Microsoft Visual C#. VSTO se također može koristiti za kontrolu ponašanja Excela i drugih Microsoft Office aplikacija.

Ova knjiga nije namijenjena početnicima u Excelu. Ako ste novi u ovoj aplikaciji, prvo pročitajte knjigu Biblije korisnika programa Excel 2010 u kojoj su detaljno opisane sve značajke Excela (namijenjena je korisnicima svih razina).


Knjiga:Vodič za VBA
Garnaev A.
Izdavač: bhv
Stranice: 512
Format: html sa slikama u rar formatu
ISBN: 5-8206-0067-3
Veličina: 2,22 MB

Izvrsno

Jezik: Engleski
Godina izdavanja: 2009

Microsoft Excel je mnogo više od obične proračunske tablice. Uvođenjem Visual Basic Editor-a u Excel 97, nakon čega je uslijedila značajno poboljšana stabilnost Excela 2000, Excel je postao cijenjena razvojna platforma za sebe. Excel aplikacije sada se nalaze uz one temeljene na C++, Javi i razvojnoj platformi .NET, kao dio temeljnog paketa korporativnih aplikacija kritičnih za misiju.
Nažalost, Excel se još uvijek prečesto smatra hobističkom platformom, da ljudi razvijaju Excel aplikacije samo u svoje slobodno vrijeme kako bi automatizirali manje zadatke. Čini se da kratak pregled mnogih Excel VBA knjiga potvrđuje ovo mišljenje. Ove se knjige usredotočuju na osnove automatizacije Excel zadataka pomoću VBA. Ova je knjiga prva takve vrste koja pruža detaljno objašnjenje kako koristiti Excel kao platformu za razvoj aplikacija profesionalne kvalitete.
Dok se čini da većina drugih velikih razvojnih platformi ima de facto standardni tekst koji objašnjava uobičajeno dogovorene najbolje prakse za arhitekturu, projektiranje i razvoj aplikacija pomoću te platforme, Excel do sada nije imao. Ova knjiga pokušava popuniti tu prazninu. Autori su profesionalni programeri programa Excel koji kreiraju aplikacije temeljene na Excelu za klijente u rasponu od pojedinaca do najvećih multinacionalnih korporacija. Ova knjiga objašnjava pristupe koje koristimo prilikom dizajniranja, razvoja, distribucije i podrške aplikacijama koje pišemo za naše klijente.
Ovu knjigu dao je korisnik

Vrhunski povezani članci