„Visual Basic“ makrokodai. Kaip parašyti paprastą makrokomandą „Excel“.

Straipsnis skirtas žmonėms, norintiems išmokti rašyti programas naudojant „Excel“ integruotą „Visual Basic“ (VBA), bet visiškai neįsivaizduojantiems, kas tai yra.

Pirmiausia keli žodžiai apie tai, kodėl to reikia. VBA įrankis MS Excel suteikia mums universalų įrankį greitai ir tiksliai išspręsti bet kokias individualias vartotojo užduotis MS Excel. Žinoma, galite naudoti tuos, kurie yra įmontuoti MS Excel funkcijos kurių yra labai daug, tačiau jie ne visada išsprendžia problemą.
Taigi, sukurkime pvz paprasčiausia programa. Mes naudosime MS Excel 2007. Atidarykite MS Excel, spustelėkite "išsaugoti kaip" ir išsaugokite programos failą spustelėdami "Excel darbaknygę su makrokomandų palaikymu".


Tada turite įjungti skirtuką „Kūrėjas“. Norėdami tai padaryti, spustelėkite „Excel“ parinktys

Pažymėkite langelį „Rodyti kūrėjo skirtuką juostelėje“


Po to juostelėje, „Excel“ lapo viršuje, atsiras skirtukas „Kūrėjas“, kuriame yra įrankiai VBA makrokomandoms kurti.
Įsivaizduokime nedidelę užduotį – tarkime, kad turime 2 skaičius, juos reikia sudėti ir, naudojant gautą sumą, gauti reikšmę iš mūsų lentelės.
Į lapo 1 langelius įdėkime šias reikšmes:


2 lape užpildykite langelius, sukurdami 2 stulpelių lentelę


Tada eikite į Sheet1, spustelėkite skirtuką „Kūrėjas“, „Įterpti“, pasirinkite jame esantį mygtuką
ir nubrėžkite mygtuką 1 lape, po kurio iškart pasirodys langas „Priskirti makrokomandą objektui“, kuriame pasirenkame „Sukurti“

Po to atsidarys Visual Basic redaktorius ir automatiškai bus parašytas procedūros, kuri bus vykdoma paspaudus mygtuką, pavadinimas. Po procedūros pavadinimu įveskite šį kodą:


Kodas atliks šiuos veiksmus:

  • MsgBox („Tai mano pirmoji makrokomanda!“) – pranešimas
  • Kintamajam q priskiriama langelio reikšmė 1 lape su koordinatėmis 2 eilutė, 2 stulpeliai
  • Kintamajam w priskiriama langelio reikšmė 1 lape su koordinatėmis 3 eilutė, 2 stulpeliai
  • 1 lapo langelyje, kurio koordinatės yra 4 eilutė, 2 stulpeliai, įrašoma suma q+w



Tada gauname B stulpelio vertę iš 2 lapo, esančio toje pačioje eilutėje, kur mūsų sumos vertė sutampa su A stulpelio reikšme.
Įveskime šį kodą:


ir spustelėjus mygtuką gauname tokį rezultatą:


Rezultatas rodo, kad makrokomanda pasirinko skaičių iš 2 lapo lentelės pagal mūsų sumą.
Aš nesigilinsiu į šį sudėtingą kodą, nes šio straipsnio tikslas yra pradėti rašyti makrokomandas. Internete yra daug resursų, skirtų VBA, su pavyzdžiais ir paaiškinimais, nors žinyne esančios informacijos pakanka automatizuoti skaičiavimus.

Taigi naudojant VBA galima automatizuoti bet kokio sudėtingumo ir sekos skaičiavimus. Nuorodų lentelės gali būti nukopijuotos iš įvairios literatūros į atskiras Excel lapai ir mygtukais parašykite nuoseklų skaičiavimą.

2.3 tema. Pristatymo programinė įranga ir biuro programavimo pagrindai

2.4 tema. Duomenų bazių valdymo sistemos ir ekspertinės sistemos

2.4.11. Treniruočių bazė duomenis pagrindinio mygtuko forma „Mokymai_mokiniai“ – Atsisiųsti

VBA programavimas ir makrokomandos

2.3. Pristatymo programinė įranga ir biuro programavimo pagrindai

2.3.7. Biuro programavimo pagrindai

BASIC vaizdo programavimo kalba programoms: Visual Basic for Applications (VBA)

VBA yra poaibis vizualinė kalba Vaizdinis programavimas Pagrindinis (VB), apimantis beveik visus VB programų kūrimo įrankius.

VBA skiriasi nuo VB programavimo kalbos tuo, kad VBA skirta tiesiogiai dirbti su Office objektais ir negali būti naudojama kuriant projektą, nepriklausomą nuo Office programų. Taigi VBA programavimo kalba yra VB, o programavimo aplinka realizuota VB redaktoriaus forma, kurią galima aktyvuoti iš bet kurios MS Office programos.

Pavyzdžiui, norėdami atidaryti VBA redaktorių iš PowerPoint, turite paleisti komandą Įrankiai / Makrokomandos / VBA redaktorius. Galite grįžti iš redaktoriaus į programą meniu Rodinys pasirinkę Microsoft PowerPoint komandą arba paspausdami klavišų kombinaciją Alt + F11.

Naudodamas integruotą VBA redaktoriaus valdiklių rinkinį ir formų rengyklę, vartotojas gali kurti vartotojo sąsaja kuriamam projektui su ekrano forma. Valdikliai yra objektai ir kiekvienas objektas turi galimų įvykių rinkinį (pavyzdžiui, paspaudimas arba dukart spustelėkite pelė, klavišų paspaudimas, objekto vilkimas ir pan.).

Kiekvienas įvykis pasireiškia tam tikrais programos veiksmais (atsakymais, reakcijomis). Vartotojo forma leidžia kurti programos dialogo langus. VBA programavimo kalba naudojama rašant programos kodą, pavyzdžiui, kuriant vartotojo funkcijas programoje Excel.

Tai, kad VBA programavimo sistema sukurta dirbti su Office objektais, leidžia efektyviai ją panaudoti kūrimo veiklai automatizuoti. įvairių tipų dokumentus.

Pažvelkime į vartotojo funkcijų kūrimo VBA algoritmą:

1. Atidarykite VBA kodo rengyklės langą vykdydami komandą Tools / Macro / Visual Basic Editor arba paspausdami Alt+F11.

2. Pasirinkite redaktoriaus meniu elementą Insert / Module.

3. Tada atlikite Insert / Procedure. Atsidariusiame dialogo lange Add Procedure įveskite funkcijos pavadinimą (pvz., SUM5) ir nustatykite jungiklius: Tipas – į Function padėtį; Taikymo sritis (Scope) - į poziciją Vieša (Bendra) ir spustelėkite Gerai.


Ryžiai. 1.

4. VBA programavimo redaktoriaus lange atsiras funkcijos šablonas: pavadinimas - Public Function SUM5() ir pabaiga - End Function, tarp kurių reikia įdėti funkcijos kūno kodą.


Ryžiai. 2.

5. Toliau įveskite funkcijos parametrų sąrašą, pavyzdžiui, skliausteliuose nurodome (x, y, z, i, j), duomenų tipą (tiksliems skaičiavimams) ir funkcijos grąžinamos reikšmės tipą (į šiame pavyzdyje mes neįeisime). Be to, pristatome funkcijos kūną, pavyzdžiui, SUM5 = x + y + z + i + j. Dėl to gauname tokį programos tekstą:

Viešoji funkcija SUM5(x, y, z, i, j)
SUM5 = x + y + z + i + j
Pabaigos funkcija

6. Grįžimas prie lango Excel programos, kuriame, pavyzdžiui, turime susumuoti penkias reikšmes.

7. Vykdykite „Insert/Function“ ir atsidariusiame funkcijų vedlio lange pasirinkite „User-defined“ kategoriją, o lange „Select a function“ pasirinkite SUM5 ir spustelėkite OK.



Ryžiai. 3.



Ryžiai. 4.

Makrokomandos

Makrokomandos kūrimas

Sukurkime makrokomandą, kuri automatiškai susumuotų du skaičius langeliuose A1, B1 ir gautą rezultatą patalpintume į langelį C1, taip pat užpildytume langelį C1 turkio spalva.

Užduoties makrokomandos kūrimo algoritmas:

1. Pasirinkite Tools/Macro, Start Recording.

2. Lauke Makrokomandos pavadinimas įveskite makrokomandos pavadinimą. Pirmasis makrokomandos pavadinimo simbolis turi būti raidė. Makrokomandos pavadinime tarpai neleidžiami; Kaip žodžių skyriklius galite naudoti apatinius brūkšnius.

3. Norėdami paleisti makrokomandą naudodami spartųjį klavišą, lauke Spartusis klavišas įveskite raidę. Priimtinas naudojimas CTRL deriniai+ raidė (mažosioms raidėms) arba CTRL+SHIFT+ raidė (didžiosioms raidėms), kur raidė yra bet kuris klaviatūros raidės klavišas. Nesirinkite standartinio sparčiojo klavišo, nes pasirinktas spartusis klavišas nepaiso standartinių sparčiųjų klavišų Microsoft raktai Excel tuo metu su šia knyga.

4. Lauke „Išsaugoti“ pasirinkite darbaknygę, kurioje norite išsaugoti makrokomandą. Išsaugokite makrokomandą „Šioje darbaknygėje“. Už kūrimą Trumpas aprašymas makrokomandą, lauke Aprašymas įveskite reikiamą tekstą. Ekrano kopijoje parodytas dialogo lango „Įrašyti makrokomandą“ užpildymo pavyzdys


Ryžiai. 5.

5. Spustelėkite Gerai.

6. Vykdykite norimas įrašyti makrokomandas.


Ryžiai. 6.

7. Spustelėkite mygtuką Stabdyti įrašymą slankiojoje OS įrankių juostoje (Stop Recording) arba Tools / Macro / Stop Macro.

Kai makrokomandos įrašymas baigiamas, makrokomandų sąraše ji pasirodo jos pavadinimu.

VBA redaktorius automatiškai įrašė makrokomandų seką arba programą pagal atliktus veiksmus (7 pav.).



Ryžiai. 7.

Norėdami iškviesti makrokomandą, turite vykdyti komandą Įrankiai / Makrokomandos / Makrokomandos. Po to dialogo lange su makrokomandų sąrašu galite jį rasti pagal pavadinimą ir spustelėti mygtuką Vykdyti.

Įrankių juostos mygtuko priskyrimas makrokomandai paleisti

Makrokomandą galima paleisti naudojant mygtuką integruotoje įrankių juostoje; norėdami tai padaryti, turite atlikti šiuos veiksmus:

  1. Meniu Įrankiai pasirinkite Nustatymai.
  2. Dialogo lange Nustatymai pasirinkite skirtuką Komandos, o sąraše Kategorijos pasirinkite parinktį Makrokomandos, o komandų sąraše pasirinkite „Custom Button“.
  3. Komandų sąraše pele nuvilkite pasirinktinį mygtuką į įrankių juostą.
  4. Dešiniuoju pelės mygtuku spustelėkite šį mygtuką ir pasirinkite Priskirti makrokomandą kontekstinis meniu.
  5. Lauke Makrokomandos pavadinimas įveskite makrokomandos pavadinimą.

Grafinio objekto srities priskyrimas makrokomandai vykdyti:

  1. Sukurkite grafinį objektą.
  2. Taikykite kontekstinį meniu pasirinktam grafiniam objektui.
  3. Kontekstiniame meniu pasirinkite komandą Priskirti makrokomandą.
  4. Pasirodžiusiame dialogo lange Priskirti makrokomandą objektui lauke Makrokomandos pavadinimas įveskite makrokomandos pavadinimą, tada spustelėkite Gerai.

Makrokomandos redagavimas atliekamas naudojant VBA redaktorių; norėdami tai padaryti, turite atlikti šiuos veiksmus:

  1. Pasirinkite komandą Įrankiai / Makrokomandos / Makrokomandos.
  2. Sąraše Pavadinimas pasirinkite makrokomandos, kurią norite pakeisti, pavadinimą.
  3. Spustelėkite mygtuką Edit, atsidarys Visual Basic langas, kuriame galėsite redaguoti pasirinktos makrokomandos komandas, parašytas Visual Basic.


Makrokomandos pašalinimas:

  1. Meniu Įrankiai pasirinkite Makrokomandos, tada pasirinkite Makrokomandos.
  2. Dabartinės darbaknygės makrokomandų sąraše turite pasirinkti makrokomandą, kurią norite ištrinti, ir spustelėti mygtuką Naikinti.

Makrokomandos pervadinimas

Norėdami pervardyti makrokomandą, turite įjungti makrokomandos redagavimo režimą ir pakeisti pavadinimą programos tekste. Naujasis pavadinimas automatiškai pakeis senąjį makrokomandų sąrašuose ir klavišais greitas skambutis makrokomanda bus vadinama nauju pavadinimu.

Naudojant lenteles ar kitus Office objektus, dažnai iškyla situacijos, kai reikia atlikti tuos pačius veiksmus. Tai ne tik atima papildomo laiko, bet ir labai erzina. Laimei, yra makrokomandų šiai problemai išspręsti.

Sukurta makrokomandoms kurti programinės įrangos aplinka VBA, tačiau jums nereikia būti programuotoju ar mokytis Visual Basic for Application, kad išmoktumėte juos rašyti. Šiam tikslui yra specialiai sukurti įrankiai, kurie jūsų komanda sukuria VBA kodą, nereikalaujant iš jūsų papildomų žinių. Tačiau išmokti šią kalbą nėra taip sunku.

Makrokomandos kuriamos programose naudojant įrašymo įrankius. Tokiu atveju tam tikram klavišų deriniui priskiriama norima veiksmų seka. Atidarykite „Office“ programą. Pasirinkite fragmentą, kurį formatuosite.

Pasirinkite meniu elementą „Įrankiai“ -> „Makrokomandos“ -> „Pradėti įrašymą“ (Office 2007 - „View“ -> „Macros“ -> „Record Macro“). Pasirodžiusiame lange „Įrašyti makrokomandą“ nustatykite naujos makrokomandos pavadinimą; pagal numatytuosius nustatymus jis yra „Macro1“, tačiau geriau suteikti jai pavadinimą, ypač jei makrokomandų bus kelios. Maksimalus dydis pavadinimo laukai – 255 simboliai, taškas ir tarpas neleidžiami.

Nuspręskite, kokį mygtuką ar klavišų derinį naudoti ateityje naudos jūsų makrokomandoje. Stenkitės pasirinkti patogiausią variantą, ypač jei jis skirtas dažnam naudojimui. Lauke „Priskirti makrokomandą“ pasirinkite atitinkamą elementą: „mygtukas“ arba „raktai“.

Jei pasirinksite "button", atsidarys langas "Quick Settings". Kai pasirenkate „klavišai“, jums tereikia klaviatūroje įvesti derinį. Peržiūrėkite „Dabartinius derinius“, kad išvengtumėte pasikartojimo. Spustelėkite „Priskirti“.

Programomis Word ir PowerPoint sukurta makrokomanda ateityje galios visiems dokumentams. Jei norite, kad „Excel“ makrokomanda būtų prieinama visiems dokumentams, išsaugokite ją personal.xls faile, kuris paleidžiamas automatiškai, kai atidarote programą. Vykdykite komandą „Langas“ -> „Display“ ir pasirodžiusiame lange pasirinkite eilutę su failo pavadinimu personal.xls.

Lauke Aprašymas įveskite makrokomandos aprašymą. Spustelėkite Gerai ir grįšite į savo dokumentą, bet dabar ant pelės žymeklio galite matyti įrašymo piktogramą. Suformatuokite tekstą nurodydami veiksmų seką, kurią norite automatizuoti. Būkite labai atsargūs ir nedarykite nereikalingų veiksmų, nes makrokomandos juos visus įrašys, o tai turės įtakos jos vykdymo laikui ateityje.

Vykdykite komandą „Įrankiai“ -> „Makrokomandos“ -> „Sustabdyti įrašymą“. Sukūrėte VBA objektą patys neįrašę nė vienos kodo eilutės. Tačiau, jei vis tiek reikia atlikti pakeitimus rankiniu būdu, įveskite objektą per skyrių „Makrokomandos“, komandą „Keisti“ arba naudodami klavišų kombinaciją Alt+F8.

„Excel“ galimybės neapsiriboja įtaisytųjų funkcijų rinkiniu. Rašydami makrokomandas galite susikurti savo funkcijas nestandartinėms užduotims atlikti programoje Excel.

Pavyzdžiui, savarankiškai parašyta makrokomandą galima pridėti prie piktogramos ir parodyti meniu juostelėje. Arba galite sukurti vartotojo apibrėžtą funkciją (UDF) ir naudoti ją kaip ir kitas „Excel“ integruotas funkcijas.

Makrokomandas yra kompiuterio kodas, parašytas programai „Excel“ „Visual Basic for Applications“ (VBA) programavimo kalba. Pagrindinės sąvokos VBA programavimo kalba aptariama mūsų svetainės VBA pamokoje. Tačiau prieš pradedant rašyti VBA kodą, rekomenduojame peržvelgti pamokas, apimančias Excel makrokomandos saugą ir Visual Basic redaktorių.

Leidimo naudoti makrokomandas programoje „Excel“ nustatymas

„Excel“ turi integruotą apsaugą nuo virusų, kurie gali patekti į jūsų kompiuterį per makrokomandas. Jei norite bėgti į knygą Excel makrokomandą, įsitikinkite, kad saugos nustatymai sukonfigūruoti tinkamai.

Visual Basic redaktorius

Makrokomandų įrašymas

„Excel“ makrokomandų įrašymo įrankiai yra puikus būdas efektyviai atlikti paprastas, pasikartojančias užduotis. Jis taip pat gali būti naudojamas kaip pagalbinė priemonė rašant sudėtingesnes makrokomandas.

Excel VBA pamoka

Tiems, kurie tik pradeda įvaldyti Excel VBA programavimo kalbą, siūlome trumpą įvadinį „Visual Basic for Applications“ kursą.

Norėdami automatizuoti pasikartojančias užduotis Microsoft Excel Galite greitai įrašyti makrokomandą. Tarkime, kad turite skirtingų formatų datas ir visoms norite taikyti tą patį formatą. Tai galima padaryti naudojant makrokomandą. Galite įrašyti taikomą makrokomandą reikalingas formatas ir tada paleiskite, kai reikia.

Kai įrašote makrokomandą, įrašomi visi veiksmai, aprašyti Visual Basic for Applications (VBA) kode. Šie veiksmai gali apimti teksto ar skaičių įvedimą, langelių arba komandų spustelėjimą juostelėje arba meniu, langelių, eilučių ar stulpelių formatavimą ir duomenų importavimą iš išorinio šaltinio, pvz. „Microsoft Access“.. „Visual Basic“ programa (VBA) yra galingos „Visual Basic“ programavimo kalbos poaibis, įtrauktas į daugumą „Office“ programų. Nors VBA suteikia galimybę automatizuoti procesus tarp Office programų, jums nereikia žinoti VBA kodo ar programinės įrangos, jei to reikia.

Svarbu žinoti, kad kai įrašote makrokomandą, įrašoma beveik viskas, ką darote. Taigi, jei padarysite klaidą, pvz., paspausite netinkamą mygtuką, makrokomandos įrašymo priemonė tą veiksmą įrašys. Tokiu atveju galite iš naujo parašyti visą seką arba pakeisti VBA kodą. Todėl prieš įrašydami procesą turėtumėte gerai jį išsiaiškinti. Kuo tiksliau įrašysite seką, tuo efektyviau veiks makrokomanda.

Programuotojas, kuris pagal numatytuosius nustatymus yra paslėptas, todėl pirmiausia turite jį įjungti. Norėdami gauti daugiau informacijos, žr. Kūrėjo skirtuko rodymas.

Įrašykite makrokomandą

Skirtuke Programuotojas spustelėkite Makrokomandos norėdami peržiūrėti su darbaknyge susijusias makrokomandas. Arba galite paspausti klavišus ALT + F8. Tai atvers dialogo langą Makro.


Dėmesio:

Sužinokite apie makrokomandos saugos nustatymus ir jų reikšmę.

Galima paleisti makrokomandas Skirtingi keliai, pavyzdžiui, naudojant spartųjį klavišą, grafinį objektą, skydelį greita prieiga, mygtukus ar net atidarant knygą.

Galite naudoti „Visual Basic“ rengyklę, norėdami redaguoti prie darbaknygės pridėtas makrokomandas.

    priskirti makrokomandą.

    Lauke Priskirti makrokomandą

Sužinokite, kaip įjungti arba išjungti makrokomandas Office failuose.

Paspauskite klavišus ALT+F11.

Darbas su įrašytu kodu „Visual Basic“ rengyklėje (VBE)

Naudodami „Visual Basic“ rengyklę (VBE) į įrašytą kodą galite įtraukti savo kintamuosius, valdymo struktūras ir kitus elementus, kurių makrokomandos įrašymo priemonė nepalaiko. Kadangi makrokomandos įrašymo įrenginys fiksuoja beveik kiekvieną įrašymo metu atliktą veiksmą, gali tekti pašalinti ir nereikalingą kodą. Įrašyto kodo peržiūra yra puikus būdas išmokti VBA programavimo arba patobulinti savo įgūdžius.

Įrašyto kodo keitimo pavyzdį rasite straipsnyje Darbo pradžia naudojant VBA programoje Excel.

Įrašykite makrokomandą

Prieš įrašydami makrokomandas, pravartu žinoti:

    Makrokomandos, parašytos dirbti su „Excel“ diapazonu, veiks tik to diapazono langeliuose. Taigi, jei papildysite asortimentą nauja linija, makrokomanda jam nebus taikoma.

    Jei reikia įrašyti ilgą užduočių seką, rekomenduojame naudoti kelias mažesnes makrokomandas.

    Makrokomandoje taip pat gali būti ne „Excel“ užduočių. Makrokomandos procesas gali apimti kitas „Office“ programas ir kitas programas, kurios palaiko „Visual Basic for Applications“ (VBA). Pavyzdžiui, galite įrašyti makrokomandą, kuri pirmiausia atnaujina lentelę programoje „Excel“, o tada atidaro „Outlook“, kad išsiųstų ją el. paštu.

Makrokomandos ir VBA įrankiai yra skirtuke Programuotojas, kuris pagal numatytuosius nustatymus yra paslėptas, todėl pirmiausia turite jį įjungti.

    Eikite į nustatymus > Excel... Įrankių juosta & > Juostelės.

Norėdami įrašyti makrokomandą, vadovaukitės toliau pateiktomis instrukcijomis.

Darbas su Excel įrašytomis makrokomandomis

Skirtuke Programuotojas spustelėkite Makrokomandos norėdami peržiūrėti su darbaknyge susijusias makrokomandas. Tai atvers dialogo langą Makro.

Pastaba: Makrokomandų negalima atšaukti. Prieš pirmą kartą paleisdami įrašytą makrokomandą, išsaugokite arba sukurkite darbaknygės kopiją, kad išvengtumėte nepageidaujamų pakeitimų. Jei nesate patenkinti makrokomandos rezultatais, galite uždaryti darbaknygę jos neišsaugoję.

Čia rasite daugiau informacijos apie darbą su makrokomandomis programoje „Excel“.

Sužinokite, kaip įjungti arba išjungti makrokomandas „Excel“, skirtoje „Mac“.

Jei darbaknygėje yra VBA makrokomanda, kurią norite naudoti kitur, galite nukopijuoti tą modulį į kitą darbaknygę naudodami redaktorių Microsoft Visual Pagrindinis.

Makrokomandos priskyrimas objektui, formai arba grafinis elementas

    Darbalapyje dešiniuoju pelės mygtuku spustelėkite objektą, paveikslėlį, figūrą ar elementą, kuriam norite priskirti esamą makrokomandą, tada spustelėkite priskirti makrokomandą.

    Lauke Priskirti makrokomandą pasirinkite norimą priskirti makrokomandą.

Piktogramai galite priskirti makrokomandą ir pridėti ją prie greitosios prieigos įrankių juostos arba juostelės.

Galite priskirti makrokomandas formoms ir ActiveX valdikliams darbalapyje.

„Visual Basic“ redaktoriaus atidarymas

Skirtuke Programuotojas spustelėkite Visual Basic arba pasirinkite Aptarnavimas > Makro > Visual Basic redaktorius.

Sužinokite, kaip rasti „Visual Basic“ elementų pagalbos.

Papildoma informacija

Visada galite užduoti klausimą „Excel Tech“ bendruomenės specialistui, paprašyti pagalbos „Answers“ bendruomenėje, taip pat pasiūlyti nauja funkcija arba tobulinimas svetainėje

Dalintis