Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • vijesti
  • Vba excel primjeri programa. Osnove VBA programiranja i kreiranja makroa u Microsoft Office aplikacijama

Vba excel primjeri programa. Osnove VBA programiranja i kreiranja makroa u Microsoft Office aplikacijama

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

Primer 1. Jednostavna poruka dijaloga msgBox u VBA

Nemojmo odstupiti od tradicije početka svih primjera programiranja. Hajde da napišemo makro koji će nam, kada se pokrene, dati okvir za poruku sa rečima "Hello World". Istovremeno ćemo razmotriti rad sa prilagođenim dijalozima.

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

Dakle, da biste kreirali makro, potrebno je da otvorite prozor svog omiljenog Visual Basic (VB) editora. Da bismo to učinili, izvodimo sljedeće radnje: Service-Macro-EditorVisualBasic(Alt + F11).


Otvoriće se prozor MS Visual Basic editora.

Ako nemate lijeve prozore, morate ih omogućiti. Da biste to uradili, pritisnite F4 - Otvara prozor sa svojstvima Svojstvaprozor, a prečica na tastaturi Ctrl + R - otvara prozor ProjektExplorer. Teško je raditi bez ovih prozora u budućnosti. Sve! Made.

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

Šta je potrebno učiniti da bi se počelo pisati kod? Morate kreirati modul. Napomena: Općenito, u budućnosti preporučujem podjelu koda za rukovanje na različite module. Ovo će olakšati razumijevanje koda i stvoriti red u strukturi.

Izrađujemo modul: Umetak - Modul

Pred nama se otvorio prazan prozor modula koji podsjeća na notes. Takav prozor smo već vidjeli kada smo snimili prvi makro. Prema pravilima "dobrog ukusa" daćemo ime našem modulu, nazvaćemo ga " MacroBook". 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:

Spremni! Otvorite prozor Excel radne sveske, kliknite Alt + F8 i vidimo naš makro "Halo"

Sve što ostaje je “ Izvrši". Kao rezultat makro operacije, primit ćemo poruku sljedeće forme i sadržaja:

Primer 2. Prošireni dijalog poruka msgBox u VBA

Razmotrite drugu vrstu dijaloških poruka koje sadrže dodatna dugmad "Da", "Ne", "Otkaži"

Prolazimo do koda našeg "Hello" makroa i dodajemo naredbi msgbox sljedeće:

MsgBox"Halo, World!", VbYesNoCancel, "My Macro"

Imajte na umu da kada stavite zarez nakon "Zdravo, svijet!", trebali biste vidjeti listu svih dostupnih tipova dijaloških okvira.

Eksperimentirajte sa svakim da biste razumjeli.

Pokrenimo naš makro

Sada imamo otvoren potpuno drugačiji oblik poruke.

To je sve za sada. Pratite objavljivanje članaka i lekcija. Ako imate bilo kakvih pitanja, rado ću odgovoriti, a ako bude potrebno, napisat ću članak s objašnjenjem.

Video: Primjer kako msgbox radi u vba

Za početak, uzmimo jednostavnu VBA Sub proceduru kao primjer. Pohranjuje se u VBA modul i izračunava zbir prvih 100 pozitivnih cijelih brojeva. Na kraju proračuna, procedura prikazuje poruku sa 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 Total
End Sub

Preuzmite bilješku u formatu ili

Neki popularni jezički elementi se koriste u ovoj proceduri:

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

Komentari (1)

Možete koristiti novi red za komentar ili umetnuti komentar nakon izjave u istom redu.

U nekim slučajevima morate testirati proceduru bez umetanja instrukcije, ili čak čitavog skupa instrukcija. Umjesto da izbrišete odgovarajući iskaz, dovoljno ga je pretvoriti u komentar dodavanjem apostrofa na početku reda. Nakon toga, VBA će ignorisati iskaz(e) dok izvršava proceduru. Da biste komentar pretvorili u izjavu, jednostavno uklonite apostrof.

Varijable, tipovi podataka i konstante

Varijabilna je imenovana lokacija za pohranu u memoriji računala. Varijable mogu sadržavati podatke različitih tipova. Možete koristiti slova, brojeve i neke znakove interpunkcije u imenima, ali uvijek morate prvo unijeti slovo u naziv promjenljive. VBA ne razlikuje velika i mala slova u imenima varijabli. Ne možete koristiti razmake ili tačke u imenima, ali možete odvojiti riječi podvlakama.

VBA koristi mnogo rezervisanih reči koje ne bi trebalo da se koriste kao imena varijabli ili procedura.

VBA interpreter olakšava život programerima tako što automatski obrađuje bilo koji tip podataka. Međutim, to je ispunjeno negativnim posljedicama - sporim izvršavanjem operacija i manje efikasnom upotrebom memorije. Kao rezultat toga, dopuštanje VBA-u da sam definira tipove podataka može dovesti do problema u pokretanju velikih ili složenih aplikacija.

Preporučuje se da odaberete tip podataka koji koristi minimalni broj bajtova za pohranjivanje vrijednosti. Excel koristi tip podataka Double za izvođenje matematičkih izračuna u radnim listovima. Preporučuje se da se koristi u procesu obrade brojeva u VBA kako bi se osigurala ista preciznost u proračunima.

Postoje tri tipa varijabilnih opsega:

Rad sa konstantama

Ponekad trebate koristiti imenovanu vrijednost ili string koji se nikada ne mijenja - konstantu. Ako vaša procedura više puta upućuje na određenu vrijednost, kao što je kamatna stopa, trebali biste tu vrijednost deklarirati kao konstantu i koristiti ime konstante u svojim izrazima, a ne njenu vrijednost. Ova tehnika ne samo da čini program čitljivijim, već i olakšava kasniju promjenu koda - dovoljno je promijeniti samo jednu instrukciju, a ne nekoliko.

Const operator se koristi za deklarisanje konstanti. Na primjer,

Const NumQuarters kao cijeli broj = 4

Kao i varijable, konstante imaju opseg. Ako pokušate da promenite vrednost konstante u VBA kodu, dobićete poruku o grešci (što je i očekivano). Konstanta je konstantna vrijednost, a ne varijabla. Postoji niz unaprijed definiranih konstanti u Excel-u i VBA-u koje možete koristiti bez deklaracije. Ne morate čak ni znati značenje ovih konstanti da biste ih primijenili. Prilikom snimanja makroa uobičajeno je koristiti konstante, a ne vrijednosti. Sljedeća procedura koristi ugrađenu konstantu za promjenu orijentacije stranice aktivnog lista u pejzažnu:

Sub SetToLandscape ()
ActiveSheet.PageSetup.Orientation = xlLandscape
End Sub

Stvarna vrijednost xlLandscape je 2. Pregledač objekata sadrži listu svih Excel i VBA konstanti. Da biste otvorili pretraživač objekata u VBE, pritisnite tipku .

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

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

Datumi su uvijek navedeni u formatu mjesec/dan/godina, čak i ako je sistem konfiguriran da prikazuje podatke u drugom formatu.

Operatori dodjele

Operator dodjeljivanja je VBA izraz koji izvodi matematičko izračunavanje i dodjeljuje rezultat varijabli ili objektu. U Excel pomoći, 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 izvoditi izračunavanje, procesirati znakove ili testirati podatke.

Veliki broj operacija koje se izvode u VBA su povezane sa razvojem (i otklanjanjem grešaka) izraza. Ako znate kako da kreirate formule u Excelu, onda nećete imati problema sa kreiranjem izraza u VBA. U formuli Excel radnog lista, rezultat se prikazuje u ćeliji. Alternativno, VBA izraz može dodijeliti vrijednost varijabli ili se koristiti kao vrijednost svojstva. U VBA, operator dodjeljivanja je znak jednakosti (=).

Nizovi

Niz je grupa elemenata istog tipa koji imaju zajedničko ime; određeni element niza se referencira pomoću imena niza i indeksa. Na primjer, možete definirati niz od 12 redova tako da svaka varijabla odgovara nazivu mjeseca. Ako nizu date naziv MonthNames, možete se odnositi na prvi element niza kao MonthNames (0), drugi kao MonthNames (1), i tako dalje do MonthNames (11).

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

Dim MyArray (1 do 100) kao cijeli broj

Po defaultu, VBA nizovi koriste nulu kao prvi element. Ako želite da se 1 koristi kao prvi indeks svih nizova, onda prije prve procedure modula morate napraviti sljedeću deklaraciju: Opcija Base 1

Dinamički niz nema unaprijed definiran broj elemenata. Deklariše se sa praznim vrijednostima u zagradama: Dim MyArray () As Integer. Međutim, prije nego što možete koristiti dinamički niz u svom programu, morate koristiti ReDim naredbu da kažete VBA koliko elemenata ima u nizu. Za to se često koristi varijabla čija je vrijednost nepoznata dok se procedura ne pokrene za izvršenje. Na primjer, ako je x dodijeljen broj, veličina niza se određuje pomoću sljedećeg operatora: 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: Set InputArea = Raspon ("C16: E16").

Ugrađene funkcije

VBA ima niz ugrađenih funkcija koje pojednostavljuju proračune i operacije. Na primjer, VBA funkcija UCase, koja konvertuje string u velika slova, ekvivalentna je Excel funkciji UPPERCASE. Da biste koristili Excel funkciju u VBA naredbi, prije naziva funkcije unesite sljedeći izraz:

Application.WorksheetFunction

Važno je shvatiti da ne možete koristiti Excel funkcije za koje VBA pruža ekvivalentne funkcije. Na primjer, VBA ne dozvoljava pristup Excel funkciji ROOT (SQRT) jer VBA ima svoju verziju ove funkcije: Sqr. Dakle, sljedeća izjava daje grešku:

MsgBox Application.WorksheetFunction.Sqrt (123)

Funkcija MsgBox jedna je od najkorisnijih funkcija u VBA. To je također odličan alat za otklanjanje grešaka jer u svakom trenutku možete umetnuti funkciju MsgBox da pauzirate program i prikažete rezultat izračunavanja 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 se može koristiti čak i kada odgovor od korisnika nije potreban, ali je potrebno prikazati poruku. Sintaksa za funkciju MsgBox je:

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

  • Poruka (obavezno) - Poruka koja se prikazuje u dijaloškom okviru.
  • Dugmad (opcionalno) je vrijednost koja određuje koja se dugmad i ikone (ako postoje) prikazuju u okviru za poruke. Koristite ugrađene konstante (na primjer, vbYesNo).
  • Naslov (opciono) je tekst koji se pojavljuje u naslovnoj traci okvira za poruke. Microsoft Excel tekst se prikazuje prema zadanim postavkama.
  • Help_file (opciono) - naziv datoteke pomoći koja odgovara polju za poruke.
  • Kontekst (opciono) - Identifikator konteksta za temu pomoći. Predstavlja određenu temu pomoći za prikaz. Ako se koristi kontekst argumenta, morate koristiti i argument datoteke pomoći.

Možete dodijeliti rezultirajuću vrijednost varijabli ili koristiti funkciju bez operatora dodjeljivanja. U primjeru ispod, rezultat je dodijeljen varijabli Ans.

Ans = MsgBox ("Nastaviti?", VbYesNo + vbQuestion, "Izvještaj")
Ako je Ans = vbNo, onda izađite iz pod

Imajte na umu da se zbir dvije ugrađene konstante (vbYesNo + vbQuestion) koristi kao vrijednost argumenta gumba. Konstanta vbYesNo prikazuje dva dugmeta u okviru za poruke, jedno sa Da i jedno sa Ne. Dodavanje vbQuestion argumentu će također prikazati ikonu pitanja. Čim se izvrši prva naredba, varijabla Ans će dobiti jednu od dvije vrijednosti, predstavljene konstantama vbYes i vbNo. U ovom primjeru, procedura izlazi nakon klika na dugme Ne.

Upravljanje objektima i naplatom

VBA nudi dvije konstrukcije koje vam pomažu da pojednostavite upravljanje objektima i kolekcijama. Konstrukcija With - End With vam omogućava da izvršite više operacija na jednom objektu. Da biste razumjeli kako to funkcionira, razmotrite sljedeću proceduru koja mijenja šest svojstava odabranog objekta (pod pretpostavkom da je odabran raspon).

Sub ChangeFontl ()
Selection.Font.Name = "Cambria"
Selection.Font.Bold = True Selection.Font.Italic = Tačno
Selection.Font.Size = 12
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.ThemeColor = xlThemeColorAccentl
End Sub

Ova procedura se može prepisati sa konstrukcijom With - End With. Procedura prikazana ispod radi potpuno isto kao i prethodna.

Sub ChangeFont2 ()
Sa Selection.Font
.Name = "Cambria"
.Podebljano = Tačno
.Italic = Tačno
.Veličina = 12
.Underline = xlUnderlineStyleSingle
.ThemeColor = xlThemeColorAccentl
Završi sa
End Sub

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

Za svaki element U zbirka
[instrukcije]
[instrukcije]
Sljedeći [ element]

Na primjer:

Sub CountSheets ()
Zatamnite stavku kao radni list
Za svaku stavku u ActiveWorkbook.Worksheets
MsgBox Item.Name
Next Item
End Sub

Sljedeći primjer zatvara sve prozore osim aktivnog:

Sub Closelnactive ()
Dim Book kao radna sveska
Za svaku knjigu u radnim sveskama
Ako Book.Name<>ActiveWorkbook.Name Zatim Book.Close
Sledeća knjiga
End Sub

Kontrola izvršavanja koda

Neke VBA rutine počinju s prvim redovima koda. Međutim, ponekad je potrebno kontrolirati redoslijed operacija preskakanjem pojedinačnih naredbi, ponovnim izvršavanjem nekih naredbi i provjeravanjem uslova kako bi se odredila sljedeća radnja koju treba preduzeti procedurom.

Naredba GoTo preusmjerava tok programa na novu instrukciju, koja je označena na poseban način (tekstualni niz koji završava dvotočkom ili broj koji se završava razmakom prije naredbe). Procedura u nastavku koristi funkciju VBA InputBox za dobivanje korisničkog imena. Ako se korisničko ime razlikuje od Howarda, tada procedura ide na oznaku WrongName, koja završava svoj rad. Inače, procedura izvodi dodatne operacije. Naredba Exit Sub završava izvršenje procedure.

Sub GoToDemo ()
Korisničko ime = InputBox ("Unesite svoje ime:")
Ako UserName<>Howard Onda Go To WrongName
MsgBox ("Zdravo Hauarde...")
"- [Ovdje unesite dodatni kod] -
Exit Sub
Pogrešno ime:
MsgBox "Izvinite, samo Howard može pokrenuti ovu proceduru."
End Sub

U stvarnosti, naredba GoTo je potrebna samo za hvatanje grešaka (gore navedeni kod je loš primjer i ne bi se trebao koristiti).

If-Then konstrukcija je vjerovatno najčešće korištena za grupisanje VBA naredbi:

Ako stanje Onda upute_true

Na primjer

Sub GreetMe ()
Ako je vrijeme< 0.5 Then
MsgBox "Dobro jutro"
Elself Time> = 0,5 I Vrijeme< 0.75 Then
MsgBox "Dobar dan"
Inače
MsgBox "Dobro veče"
End If
End Sub

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

Sljedeća procedura koristi funkciju VBA WeekDay da odredi da li je trenutni dan subota ili nedelja (dan u nedelji vraća 1 ili 7). Zatim se prikazuje odgovarajuća poruka.

Sub GreetUserlO
Odaberite dan radnim danom (sada)
Slučaj 1, 7
MsgBox "Vikend je"
Slučaj drugi
MsgBox "Ovo nije vikend"
Kraj Odaberite
End Sub

VBA interpreter izlazi iz konstrukcije Select Case čim se pronađe True uslov. Stoga, za maksimalnu efikasnost, najvjerovatniji slučaj treba prvo provjeriti.

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

Za counter = Počni To kraj
[instrukcije]
[instrukcije]
Sljedeći [ counter]

Sljedeća procedura zbraja kvadratne korijene prvih 100 cijelih brojeva:

Sub SumSquareRoots ()
Dim suma kao dupla
Dim Count As Integer
Zbir = 0
Za Count = 1 do 100
Zbroj = Zbroj + Sqr (Broj)
Next Count
MsgBox Sum
End Sub

Varijabla Step u For-Next petlji može biti negativna. Postupak ispod briše redove 2, 4, 6, 8 i 10 u aktivnom listu:

Sub DeleteRows ()
Dim RowNum As Long
Za Broj reda = 10 do 2 korak -2
Redovi (RowNum) .Izbriši
Next RowNum
End Sub

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

Sub ExitForDemo ()
Dim MaxVal As Double
Prigušeni red koliko dugo
MaxVal = Application.WorksheetFunction.Max (Raspon ("A: A"))
Za red = 1 do 1048576
Ako ćelije (red, 1) .Value = MaxVal Onda
Izađi za
End If
Sledeći red
MsgBox "Maksimalna vrijednost u nizu" & Red
Ćelije (Red, 1) .Aktivirajte
End Sub

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

Petlja Do While radi sve dok je specificirani uslov ispunjen. Do While petlje mogu imati jednu od sljedeće dvije sintakse.

Uradi
[instrukcije]
[instrukcije]
Petlja

Uradi
[instrukcije]
[instrukcije]
Petlja

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

Sub EnterDates ()
"Do While petlja, stanje se provjerava na početku
Zatamnite datum kao datum
Datum = Serial datuma (godina (datum), mjesec (datum), 1)
Uradite dok Mjesec (TheDate) = Mjesec (Datum)
ActiveCell = Datum
Datum = Datum + 1
ActiveCell.Offset (1, 0) .Aktiviraj
Petlja
End Sub

Ova procedura koristi varijablu TheDate, koja pohranjuje datume zabilježene na radnom listu. Prvi dan tekućeg mjeseca se koristi za inicijalizaciju varijable. Tokom izvršavanja petlje, vrijednost varijable TheDate je upisana u aktivnu ćeliju, zatim je ova vrijednost povećana za jedan, nakon čega se aktivira sljedeća ćelija. Petlja se izvodi sve dok se vrijednost mjeseca dodijeljena varijabli TheDate ne poklopi s vrijednošću mjeseca tekućeg datuma.

Do While petlje takođe mogu uključiti jednu ili više naredbi Exit Do. Kada se postigne naredba Exit Do, petlja se završava i kontrola se prenosi na naredbu koja slijedi nakon naredbe Loop.

Struktura petlje Do Until ima mnogo zajedničkog sa petljom Do While. Jedina razlika je kako se provjerava uvjet petlje. U Do While, petlja se izvodi sve dok je uvjet ispunjen. U petlji Do Until, petlja se izvodi dok se ne ispuni uvjet. Struktura Do Until takođe može biti predstavljena sa dve vrste sintakse.

Na osnovu materijala knjige. - M: Dijalektika, 2013. - S. 211–251.

Malo ko zna da se prva verzija popularnog Microsoft Excel proizvoda pojavila 1985. godine. Od tada je prošao kroz nekoliko modifikacija i tražen je od strane miliona korisnika širom svijeta. Istovremeno, mnogi rade sa samo malim dijelom mogućnosti ovog procesora proračunskih tablica i ne znaju ni kako bi im mogućnost programiranja u Excelu mogla olakšati život.

Šta je VBA

Programiranje u Excel-u se izvodi pomoću programskog jezika Visual Basic for Application, koji je originalno ugrađen u najpoznatiji Microsoftov procesor za tabelarne proračune.

Stručnjaci pripisuju relativnu lakoću razvoja njegovim prednostima. Kao što pokazuje praksa, čak i korisnici koji nemaju profesionalne vještine programiranja mogu savladati osnove VBA. Posebnosti VBA uključuju izvršavanje skripte u okruženju kancelarijskih aplikacija.

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, nedostaci uključuju pretjerano veliku otvorenost koda za promjenu od strane neovlaštene osobe. Međutim, Microsoft Office kao i IBM Lotus Symphony dozvoljavaju korisniku da šifrira seme i postavi lozinku za njegovo gledanje.

Objekti, kolekcije, svojstva i metode

Ovo su koncepti koje treba da razumeju oni koji će raditi u VBA okruženju. Prije svega, morate razumjeti šta je predmet. U Excelu, ovo je list, radna knjiga, ćelija i opseg. Ovi objekti imaju posebnu hijerarhiju, tj. poslušajte jedni druge.

Glavna je Aplikacija, koja odgovara samom programu Excel. Nakon toga slijede Radne sveske, Radni listovi i Opseg. Na primjer, da biste upućivali na ćeliju A1 na određenom listu, morate navesti stazu zasnovanu na hijerarhiji.

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

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

Metode su naredbe koje ukazuju na ono što treba učiniti. Kada pišete kod u VBA, oni moraju biti odvojeni od objekta tačkom. Na primjer, kao što će biti pokazano kasnije, naredba Cells (1,1) .Select se vrlo često koristi prilikom programiranja u Excelu. To znači da trebate odabrati ćeliju s koordinatama

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

Kako početi

Zatim morate otići na VB aplikaciju, za koju je dovoljno koristiti kombinaciju tipki "Alt" i "F11". dalje:

  • u traci menija koja se nalazi na vrhu prozora, kliknite na ikonu pored ikone programa Excel;
  • izaberite Mudule tim;
  • sačuvajte klikom na ikonu sa slikom;
  • napišite, recimo, skicu koda.

izgleda ovako:

Podprogram ()

„Naš kod

Napominjemo da će red "" Naš kod" biti označen drugom bojom (zelenom). Razlog je u apostrofu na početku reda, što znači da slijedi komentar.

Sada možete napisati bilo koji kod i kreirati novi alat za sebe u VBA Excel-u (pogledajte primjere programa ispod). Naravno, onima koji su upoznati sa osnovama Visual Basica to će biti mnogo lakše. Međutim, čak i oni koji ih nemaju, po želji, moći će se dovoljno brzo naviknuti.

Excel makroi

Ovo ime skriva programe napisane u jeziku Visual Basic za aplikacije. Dakle, programiranje u Excel-u je stvaranje makroa sa pravim kodom. Zahvaljujući ovoj funkciji, Microsoftov procesor tabela se samostalno razvija, prilagođavajući se zahtjevima određenog korisnika. Kada shvatite kako da kreirate module za pisanje makroa, spremni ste da počnete da gledate konkretne primere VBA Excel programa. Najbolje je početi s najosnovnijim 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";
  • popunite otvoreni formular.

Radi jednostavnosti, ostavite “Macro1” u polju “Macro name” i umetnite, na primjer, hh u polje “Prečica na tastaturi” (to znači da možete pokrenuti program brzom komandom “Ctrl + h”). Pritisnite Enter.

Sada, kada je snimanje makroa već počelo, sadržaj jedne ćelije se kopira u drugu. Vraća se na originalnu ikonu. Kliknite na "Snimi makro". Ova akcija znači kraj programa.

  • ponovo idite na red "Makroi";
  • izaberite "Makro 1" na listi;
  • kliknite na "Pokreni" (ista radnja se pokreće pokretanjem prečice na tastaturi "Ctrl + hh").

Kao rezultat toga, javlja se radnja koja je izvršena tokom snimanja makroa.

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

Ako je kopiranje obavljeno, na primjer, iz ćelije A1 u ćeliju C1, tada će jedan od redova koda izgledati kao Raspon (“C1”). Odaberite. Prevedeno, izgleda kao "Range (" C1 "). Select, drugim rečima, prebacuje se na VBA Excel, na ćeliju C1.

Naredba ActiveSheet.Paste završ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 vam pomažu da kreirate različite makroe u Excelu.

VBA petlje vam pomažu da kreirate različite makroe. Pretpostavimo da imamo funkciju y = x + x 2 + 3x 3 - cos (x). Potrebno je kreirati makro da biste dobili njegov grafikon. Ovo se može uraditi samo pomoću VBA petlji.

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

Svi uzorci VBA Excel makroa kreirani su koristeći istu proceduru kao što je gore prikazano. U ovom konkretnom slučaju, kod izgleda ovako:

Podprogram ()

shag = 0,1

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

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

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

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

i = i + 1 (brojac je aktivan);

x1 = x1 + shag (argument se mijenja veličinom koraka);

End Sub.

Kao rezultat pokretanja ovog makroa u Excelu, dobijamo dva stupca, od kojih prvi sadrži vrijednosti za x, a drugi za y.

Zatim se graf iscrtava koristeći ih na standardni način za Excel.

Primjer 3

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

Razmislite o programu koji kreira kolonu. Svaka ćelija će sadržavati kvadrate broja odgovarajućeg reda. Korištenje konstrukcije For će vam omogućiti da je napišete vrlo kratko, bez korištenja brojača.

Prvo morate kreirati makro kao što je gore opisano. Zatim zapisujemo sam kod. Pretpostavljamo da nas zanimaju vrijednosti za 10 ćelija. Kod izgleda ovako.

Za i = 1 do 10 Dalje

Komanda je prevedena 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. Po defaultu, odsustvo ove riječi u petlji znači da je korak jedan.

Dobijeni rezultati moraju se pohraniti u ćelije sa brojem (i, 1). Zatim, na svakom početku ciklusa, sa povećanjem i za veličinu koraka, broj reda će se takođe automatski povećati. Tako će kod biti optimizovan.

Generalno, kod će izgledati ovako:

Podprogram ()

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

Ćelije (i, 1) .Vrijednost = i ^ 2 (tj. vrijednost kvadrata i je upisana u ćeliju (i, 1))

Dalje (u određenom smislu, igra ulogu brojača i znači još jedan početak petlje)

End Sub.

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

Primjer 4

U svakodnevnom životu često postoji potreba za donošenjem ove ili one odluke, ovisno o nekom stanju. Ne možete bez njih u VBA Excel-u. Primjeri programa u kojima je odabran dalji tok izvođenja 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 kreirati makro 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.

Kreiranje takvog makroa za Excel počinje na standardni način, koristeći prečice Alt i F11. Zatim se piše sljedeći kod:

Podprogram ()

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

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

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

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

End Sub.

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

VBA funkcije

Kao što ste možda primijetili, programiranje u Microsoftovom najpoznatijem procesoru proračunskih tablica nije tako teško. Pogotovo ako naučite kako 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 grupa. To:

  • Matematičke funkcije. Primjenjujući ih na argument, dobijate vrijednost kosinusa, prirodnog logaritma, cijelog broja, itd.
  • Finansijske funkcije. Zahvaljujući njihovom prisustvu i korišćenju programiranja u Excel-u, možete dobiti efikasne alate za računovodstvene i finansijske obračune.
  • Funkcije obrade niza. To uključuje Array, IsArray; LBound; UBound.
  • VBA Excel funkcije za string. Ovo je prilično velika grupa. Uključuje, na primjer, funkcije Space za kreiranje stringa s brojem razmaka jednakim cjelobrojnom argumentu ili Asc za prevođenje znakova u ANSI kod. Svi oni su naširoko korišteni i omogućuju vam rad s redovima u Excelu, kreirajući aplikacije koje uvelike olakšavaju rad s ovim tablicama.
  • Funkcije konverzije tipa podataka. Na primjer, CVar vraća vrijednost argumenta Expression pretvarajući ga u tip podataka Variant.
  • Funkcije za rad sa datumima. One značajno proširuju standardne.Na primjer, WeekdayName funkcija vraća naziv (pun ili djelomičan) dana u sedmici po njegovom broju. Tajmer je još korisniji. Daje vam broj sekundi koje su protekle od ponoći do određene tačke u danu.
  • Funkcije za pretvaranje numeričkog argumenta u različite sisteme brojeva. Na primjer, Okt ispisuje broj u oktalnom prikazu.
  • Funkcije formatiranja. Najvažniji od njih je Format. Vraća Variant s izrazom formatiranim prema uputama datim u opisu 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:

Dat je papirni dokument izvještaja o stvarnom nivou troškova preduzeća. Obavezno:

  • da razvije svoj predložak pomoću procesora Excel tabela;
  • kreirajte VBA program koji će tražiti početne podatke da ih popuni, izvršiti potrebne proračune i popuniti ih u odgovarajuće ćelije šablona.

Razmotrimo jedno od rješenja.

Kreiranje šablona

Sve radnje se izvode na standardnom listu u Excel-u. Slobodne ćelije su rezervisane za unos podataka o nazivu preduzeća potrošača, visini troškova, njihovom nivou i prometu. Budući da broj kompanija (kompanija) za koje se sastavlja izvještaj nije fiksan, ćelije za unos vrijednosti na osnovu rezultata i punog imena stručnjaka nisu unaprijed rezervirane. Radnom listu je dat novi naziv. Na primjer, "Օ izvještaji".

Varijable

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

  • NN - broj tekućeg reda tabele;
  • TP i TF - planirani i stvarni promet;
  • SF i SP - stvarni i planirani troškovi;
  • IP i IF - planirani i stvarni nivo troškova.

Označimo istim slovima, ali sa "prefiksom" Itog, akumulaciju ukupnog iznosa za ovu kolonu. Na primjer, ItogTP - odnosi se na kolonu tabele pod nazivom „Projektovani promet“.

Rješavanje problema korištenjem VBA programiranja

Koristeći uvedene oznake dobijamo formule za odstupanja. Ako želite izračunati u%, imamo (F - P) / P * 100, a ukupno - (F - P).

Rezultate ovih proračuna najbolje je unijeti direktno u odgovarajuće ćelije u Excel tabeli.

Za činjenične i prognozirane zbrojeve dobijaju se pomoću formula ItogP = ItogP + P i ItogF = ItogF + F.

Za odstupanja koristite = (ItogF - ItogP) / ItogP * 100, ako se obračun vrši u procentima, a u slučaju ukupne vrijednosti - (ItogF - ItogP).

Rezultati se, opet, odmah upisuju u odgovarajuće ćelije, tako da nema potrebe da ih dodjeljujete varijablama.

Prije pokretanja kreiranog programa potrebno je da sačuvate radnu svesku, na primjer, pod imenom "Report1.xls".

Dugme "Kreiraj tabelu za izvještavanje" potrebno je pritisnuti samo 1 put nakon unosa informacija zaglavlja. Trebalo bi da znate i druga pravila. Konkretno, dugme "Dodaj red" mora se pritisnuti svaki put nakon unosa vrednosti za svaku vrstu aktivnosti u tabelu. Nakon što unesete sve podatke, potrebno je da kliknete na dugme "Završi", a zatim se prebacite na prozor "Excel".

Sada znate kako riješiti Excel zadatke pomoću makronaredbi. Mogućnost korištenja vba excel-a (pogledajte primjere programa iznad) može biti potrebna i za rad u okruženju trenutno najpopularnijeg uređivača teksta "Word". Konkretno, možete kreirati dugmad menija pisanjem, kao što je prikazano na samom početku članka, ili pisanjem koda, zahvaljujući kojem se mnoge operacije nad tekstom mogu izvršiti pritiskom na dežurne dugmad ili preko kartice Pogled i Makroa ikona.


knjiga: Korištenje makronaredbi u Excelu.

Stranice: 507

Format: DJVU
veličina: 8.02 Mb

Uprkos moćnoj funkcionalnosti koju pruža Excel korisnički interfejs, postoji niz zadataka koji se mogu obaviti samo programski. Korišćenje makronaredbi u Excelu predstavlja uvod u Excel VBA programiranje sa primerima kako da rešite niz praktičnih Excel problema.Materijal knjige namijenjen je korisnicima Excela, kao i programerima koji nisu upoznati sa Excel objektnim modelom. Uz teme o razvoju makroa za Excel 2002, nudi uvodni kurs o pisanju makroa i programa u Excelu.

knjiga: Vikend intenzivni kurs programiranja u Excelu

Izdavač: Dijalektika
Stranice: 421
Format: DJVU
veličina: 12.6 Mb
kvaliteta: Normalno
Jezik: ruski
žanr: programiranje
Godina izdavanja: 2004
ISBN: 5-8459-0687-3

Mogućnosti Microsoft Excel-a nisu ograničene na rad sa tabelama podataka. Iza alata za proračunske tablice krije se moćan programski jezik - VBA (Visual Basic za aplikacije). Međutim, gotovo svaki korisnik ima priliku naučiti kako pisati programe u VBA za rješavanje najrazličitijih zadataka u Excelu - od mehaničkog izvođenja proračuna do kreiranja sistema za unos podataka sa vlastitim ekranskim formama i sa mogućnošću revizije ispravnosti. od upisanih vrijednosti.

knjiga: VBA programiranje 2002

kvaliteta: Normalno
Jezik: ruski
žanr: programiranje

Knjiga sadrži kurs programiranja u Visual Basicu za aplikacije (VBA), koji je osnovni jezik u Microsoft Office aplikacijama (Word, Excel, Access, PowerPoint, FrontPage, Visio, itd.). Knjiga je namenjena početnicima da programiraju u Windows okruženju koristeći Word-, Excel-, PowerPoint-objekte.Deo knjige posvećen je razvoju Office aplikacija koje koriste baze podataka pohranjene u zasebnim datotekama i na udaljenim serverima.Materijal knjige dovoljan je za učenje osnova jezika Visual Basic i kreiranje jednostavnih makroa koji pomažu u automatizaciji rutinskog ponavljajućeg rada s dokumentima, proračunskim tabelama, grafikonima, prezentacijama itd., kao i za razvoj prilično složenih aplikacija baze podataka pomoću dijaloga kutije koje korisniku pružaju najsavremenija sredstva interfejsa.Većina primera u knjizi posvećena je aktuelnim pitanjima komercijalne delatnosti, pa će knjiga biti veoma korisna za menadžere različitih nivoa, koji su, po svemu sudeći, namenjeni i za Microsoft Office i za ugrađeni programski jezik VBA.
Dodaci na kraju knjige mogu poslužiti kao zgodna referenca kada radite i sa VBA i sa redovnim VB.

knjiga: Profesionalno VBA programiranje u Excel 2003
John Walkenbach
Izdavač: Williams
Format: PDF
veličina: 11 Mb
kvaliteta: Odlično
Jezik: ruski
Godina izdavanja: 2005
ISBN: 5-8459-0771-3
Uz knjigu dolazi i disk

Mnoge knjige su napisane u Excelu. Ali ova knjiga je posebna – razvija aplikaciju za proračunske tablice u širokom kontekstu. VBA je samo jedna komponenta prilagođenog okruženja za razvoj aplikacija, iako vrlo bitna. Ova knjiga će vam pomoći da razumete zamršenosti razvoja aplikacija pomoću VBA. Opisuje mnoge karakteristike VBA jezika, njegove mogućnosti i okruženje korišćenja.Prvo će vam biti ponuđen pregled mogućnosti programa, zatim ćete preći na definisanje koncepata VBA programiranja, a zatim ćete se upoznati. sa samim jezikom. Ako ste početnik VBA programer, onda ćete u ovoj publikaciji pronaći sve potrebne informacije koje su vam potrebne za dalji rad. ako već imate zavidno iskustvo sa VBA, onda će ova knjiga obogatiti i povećati vaše znanje, dodajući nove tehnike i primere iz stvarnog života.

pdf verziju je uredio i ljubazno dao saradnik.

knjiga: :
John Walkenbach
Izdavač: Wiley
Format: PDF
Stranice: 1308
veličina: 11.9 MB
kvaliteta: Odlično
Jezik: engleski
Godina izdavanja: 2010
Ova knjiga se fokusira na Visual Basic za aplikacije (VBA), programski jezik ugrađen u Excel (i druge aplikacije koje čine Microsoft Office). Konkretnije, pokazat će vam kako pisati programe koji automatiziraju različite zadatke u Excelu. Ova knjiga pokriva sve, od snimanja jednostavnih makroa do kreiranja sofisticiranih korisnički orijentiranih aplikacija i uslužnih programa. Ova knjiga ne pokriva Microsoft Visual Studio alate za Office (VSTO). VSTO je relativno nova tehnologija koja koristi Visual Basic .NET i Microsoft Visual C #. VSTO se takođe može koristiti za kontrolu Excel i drugih Microsoft Office aplikacija.
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 funkcija Excela. Knjiga je namijenjena korisnicima svih nivoa.

knjiga: : Profesionalno VBA programiranje u Excel 2010
John Walkenbach
Izdavač: Dijalektika
Format: PDF
Stranice:920
veličina: 22.1 MB
kvaliteta: Odlično
Jezik: ruski
Godina izdavanja: 2010 Tema ove knjige je programski jezik Visual Basic za aplikacije (VBA), koji je ugrađen u Excel, kao i druge aplikacije koje su dio Microsoft Officea. Detaljno opisuje kreiranje programa koji automatiziraju izvršavanje različitih zadataka u Excelu, a također pokriva širok spektar drugih tema - od pisanja najjednostavnijih makroa do kreiranja 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 oličenje relativno nove tehnologije koja koristi Visual Basic .NET i Microsoft Visual C #. VSTO tehnologija se takođe može koristiti za kontrolu ponašanja Excel i drugih Microsoft Office aplikacija.

Ova knjiga nije namijenjena početnicima u Excelu. Ako nemate iskustva sa ovom aplikacijom, prvo pročitajte radnu svesku Excel 2010. Korisničku Bibliju, koja detaljno objašnjava sve karakteristike Excel-a (namijenjena je korisnicima svih nivoa).


knjiga:VBA tutorial
Garnaev A.
Izdavač: bhv
Stranice: 512
Format: html sa slikama u rar formatu
ISBN: 5-8206-0067-3
veličina: 2.22 Mb

Odlično

Jezik: engleski
Godina izdavanja: 2009

Microsoft Excel je mnogo više od obične tabele. Sa uvođenjem Visual Basic Editor-a u Excel 97, nakon čega je uslijedila značajno poboljšana stabilnost Excela 2000, Excel je postao ugledna razvojna platforma sama po sebi. Excel aplikacije se sada nalaze uz one zasnovane na C ++, Javi i razvojnoj platformi .NET, kao dio osnovnog paketa kritičnih korporativnih aplikacija.
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 knjige se fokusiraju na osnove automatizacije Excel zadataka pomoću VBA. Ova knjiga je prva te vrste koja pruža detaljno objašnjenje kako koristiti Excel kao platformu za razvoj aplikacija profesionalnog kvaliteta.
Dok se čini da većina drugih velikih razvojnih platformi ima de facto standardni tekst koji objašnjava opšte dogovorene najbolje prakse za arhitekturu, projektovanje i razvoj aplikacija koristeći tu platformu, Excel do sada nije imao. Ova knjiga pokušava da popuni tu prazninu. Autori su profesionalni Excel programeri koji kreiraju Excel aplikacije 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 je doprinio korisnik

Top srodni članci