Kaip įrašyti makrokomandą „Excel“ - žingsnis po žingsnio vadovas

Net jei esate visiškai naujokas „Excel VBA“ pasaulyje, galite lengvai įrašyti makrokomandą ir automatizuoti kai kuriuos savo darbus.

Šiame išsamiame vadove aptarsiu viską, ką reikia žinoti norint pradėti įrašyti ir naudoti makrokomandas „Excel“.

Jei jus domina lengvas VBA mokymasis, patikrinkite mano Internetinis „Excel VBA“ mokymas.

Kas yra makrokomanda?

Jei esate naujokas VBA, pirmiausia leiskite man pasakyti, kas yra makrokomanda - galų gale aš toliau naudosiu šį terminą visoje mokymo programoje.

Makrokomanda yra kodas, parašytas VBA („Visual Basic for Applications“), kuris leidžia paleisti kodo dalį, kai ji vykdoma.

Dažnai pastebėsite, kad žmonės (įskaitant mane) nurodo VBA kodą kaip makrokomandą - nesvarbu, ar jis sukurtas naudojant makro įrašymo įrenginį, ar parašytas rankiniu būdu.

Kai įrašote makrokomandą, „Excel“ atidžiai stebi jūsų atliekamus veiksmus ir užrašo ją jai suprantama kalba - tai yra VBA.

Kadangi „Excel“ yra tikrai geras užrašų rašytojas, jis sukuria labai išsamų kodą (kaip pamatysime vėliau šioje pamokoje).

Dabar, kai sustabdysite įrašymą, išsaugosite makrokomandą ir paleisite ją, „Excel“ tiesiog grįžta prie jo sukurto VBA kodo ir atlieka tuos pačius veiksmus.

Tai reiškia, kad net jei nieko nežinote apie VBA, galite automatizuoti kai kurias užduotis tiesiog leisdami „Excel“ vieną kartą įrašyti jūsų veiksmus ir vėliau juos pakartotinai naudoti.

Dabar pasinerkime ir pažiūrėkime, kaip įrašyti makrokomandą „Excel“.

Juostos kūrėjo skirtuko gavimas

Pirmasis makrokomandos įrašymo žingsnis yra juostelės skirtukas Kūrėjas.

Jei juostelėje jau galite pamatyti kūrėjo skirtuką, eikite į kitą skyrių, kitaip atlikite šiuos veiksmus:

  • Dešiniuoju pelės mygtuku spustelėkite bet kurį esamą juostos skirtuką ir spustelėkite parinktį „Tinkinti juostelę“. Bus atidarytas dialogo langas „Excel“ parinktys.
  • Dialogo lange „Excel“ parinktys turėsite parinktis Tinkinti juostelę. Dešinėje, pagrindinių skirtukų srityje, pažymėkite kūrėjo parinktį.
  • Spustelėkite Gerai.

Atlikus aukščiau nurodytus veiksmus, skirtukas „Kūrėjas“ bus pasiekiamas juostos srityje.

Makrokomandos įrašymas „Excel“

Dabar, kai turime viską, sužinokime, kaip įrašyti makrokomandą „Excel“.

Įrašykime labai paprastą makrokomandą - tą, kuri pasirenka langelį ir į ją įveda tekstą „Excel“. Įrašydamas šią makrokomandą naudoju tekstą „Excel“, tačiau nedvejodami įveskite savo vardą ar bet kurį kitą jums patinkantį tekstą.

Štai šios makrokomandos įrašymo veiksmai:

  1. Spustelėkite skirtuką Kūrėjas.
  2. Grupėje „Kodas“ spustelėkite mygtuką „Makro“. Bus atidarytas dialogo langas „Įrašyti makrokomandą“.
  3. Dialogo lange Įrašyti makrokomandą įveskite makrokomandos pavadinimą. Aš naudoju pavadinimą EnterText. Pavadinant makrokomandą reikia laikytis tam tikrų pavadinimo sąlygų. Pavyzdžiui, jūs negalite naudoti tarpų. Paprastai norėčiau, kad mano makrokomandų pavadinimai būtų kaip vienas žodis, su skirtingomis dalimis ir didžiosiomis raidėmis. Taip pat galite naudoti pabraukimą, kad atskirtumėte du žodžius, pvz., „Enter_Text“.
  4. (Pasirenkamas veiksmas) Jei norite, galite priskirti spartųjį klavišą. Tokiu atveju naudosime spartųjį klavišą „Control“ + „Shift“ + N. Atminkite, kad čia priskiriamas spartusis klavišas pakeis visus esamus jūsų darbo knygos trumpinius. Pvz., Jei priskiriate spartųjį klavišą „Control + S“, negalėsite jo naudoti darbaknygės išsaugojimui (vietoj to, kiekvieną kartą ją naudojant, ji vykdys makrokomandą).
  5. Pasirinkę „Saugoti makrokomandą“ įsitikinkite, kad pasirinkta „Ši darbaknygė“. Šis žingsnis užtikrina, kad makrokomanda yra darbo knygos dalis. Jis bus ten, kai jį išsaugosite ir vėl atidarysite, arba net jei bendrinsite jį su kuo nors.
  6. (Neprivalomas veiksmas) Įveskite aprašą. Paprastai to nedarau, bet jei esate labai organizuotas, galbūt norėsite pridėti, kas yra makrokomanda.
  7. Spustelėkite Gerai. Kai tik spustelėsite Gerai, jis pradės įrašyti jūsų veiksmus „Excel“. Skirtuke „Kūrėjas“ galite pamatyti mygtuką „Sustabdyti įrašymą“, rodantį, kad makrokomandos įrašymas vyksta.
  8. Pasirinkite langelį A2.
  9. Įveskite tekstą „Excel“ (arba galite naudoti savo vardą).
  10. Paspauskite klavišą Enter. Tai pasirinks langelį A3.
  11. Spustelėkite skirtuką Kūrėjas ir sustabdykite įrašymą.

Sveikinu!

Jūs ką tik įrašėte savo pirmąją makrokomandą „Excel“. Tu jau nebesi makro mergelė.

Nors makrokomanda nedaro nieko naudingo, ji pasieks savo tikslą paaiškinti, kaip makrokomandos įrašymo įrenginys veikia „Excel“.

Dabar eikime į priekį ir išbandykime šią makrokomandą.

Norėdami išbandyti makrokomandą, atlikite šiuos veiksmus:

  1. Ištrinkite tekstą langelyje A2. Taip bandoma patikrinti, ar makrokomanda įterpia tekstą į langelį A2, ar ne.
  2. Pasirinkite bet kurį langelį, išskyrus A2. Taip bandoma patikrinti, ar makrokomanda pasirenka langelį A2, ar ne.
  3. Spustelėkite skirtuką Kūrėjas.
  4. Grupėje Kodas spustelėkite mygtuką Makrokomandos.
  5. Dialogo lange makrokomanda spustelėkite makrokomandos pavadinimą - EnterText.
  6. Spustelėkite mygtuką Vykdyti.

Pastebėsite, kad kai tik spustelėsite mygtuką Vykdyti, tekstas „Excel“ bus įterptas į langelį A2 ir bus pasirinktas langelis A3.

Dabar visa tai gali įvykti per sekundės dalį, tačiau iš tikrųjų makrokomanda - kaip ir paklusnus elfas - vykdė tikslius veiksmus, kuriuos parodėte įrašydami makrokomandą.

Taigi makrokomanda pirmiausia pasirenka langelį A2, tada įveda tekstą „Excel“ ir tada pasirenka langelį A3.

Pastaba: makrokomandą taip pat galite paleisti naudodami sparčiuosius klavišus „Control“ + „Shift“ + N (laikykite nuspaudę „Control“ ir „Shift“ klavišus, tada paspauskite klavišą N). Tai tas pats spartusis klavišas, kurį priskyrėme makrokomandai jį įrašydami.

Ką makrokomandos įrašymas veikia vidinėje sistemoje

Dabar pereikime prie „Excel“ vidinės programos - VB redaktoriaus - ir pažiūrėkime, ką iš tikrųjų daro makrokomanda.

Štai kaip atidaryti VB redaktorių „Excel“:

  1. Spustelėkite skirtuką Kūrėjas.
  2. Grupėje „Kodas“ spustelėkite mygtuką „Visual Basic“.

Arba galite naudoti sparčiuosius klavišus - ALT + F11 (laikykite nuspaudę ALT klavišą ir paspauskite F11), o ne aukščiau nurodytus du veiksmus. Šis spartusis klavišas taip pat atidaro tą patį VB redaktorių.

Jei pirmą kartą matote VB redaktorių, nenusiminkite.

Leiskite greitai susipažinti su VB redaktoriaus anatomija.

  • Meniu juosta: Čia turite visas „VB Editor“ parinktis. Apsvarstykite tai kaip VBA juostelę. Jame yra komandos, kurias galite naudoti dirbdami su VB redaktoriumi.
  • Įrankių juosta - Tai panašu į VB redaktoriaus greitos prieigos įrankių juostą. Jame yra keletas naudingų parinkčių ir galite pridėti daugiau parinkčių. Jos pranašumas yra tas, kad įrankių juostoje esanti parinktis yra vos vieno paspaudimo atstumu.
  • „Project Explorer“ langas - Čia „Excel“ išvardija visas darbaknyges ir visus kiekvienos darbaknygės objektus. Pavyzdžiui, jei turime darbaknygę su 3 darbalapiais, ji būtų rodoma „Project Explorer“. Čia yra keletas papildomų objektų, tokių kaip moduliai, vartotojo formos ir klasės moduliai.
  • Kodo langas - Čia įrašomas arba parašomas VBA kodas. Kiekvienam „Project Explorer“ išvardytam objektui yra kodo langas, pvz., Darbalapiai, darbaknygės, moduliai ir kt. Vėliau šiame vadove pamatysime, kad įrašyta makrokomanda patenka į modulio kodo langą.
  • Ypatybių langas - Šiame lange galite pamatyti kiekvieno objekto savybes. Dažnai naudoju šį langą objektams pavadinti arba paslėptoms savybėms keisti. Šio lango galite nematyti, kai atidarote VB redaktorių. Norėdami tai parodyti, spustelėkite skirtuką Rodinys ir pasirinkite Ypatybių langas.
  • Iškart langas - Dažnai naudoju tiesioginį langą rašydamas kodą. Tai naudinga, kai norite išbandyti kai kuriuos teiginius arba derindami. Jis gali būti nematomas pagal numatytuosius nustatymus, ir jūs galite jį rodyti spustelėję skirtuką Rodinys ir pasirinkę parinktį Neatidėliotinas langas.

Kai įrašėme makrokomandą - EnterText, VB redaktoriuje įvyko šie dalykai:

  • Įdėtas naujas modulis.
  • Buvo įrašyta makrokomanda su mūsų nurodytu pavadinimu - EnterText
  • Kodas buvo parašytas modulio kodo lange.

Taigi, jei dukart spustelėsite modulį (šiuo atveju 1 modulis), pasirodys kodo langas, kaip parodyta žemiau.

Štai kodas, kurį mums davė makro įrašymo įrenginys:

Sub EnterText () '' EnterText Macro '' spartusis klavišas: Ctrl+Shift+N 'diapazonas ("A2"). Pasirinkite ActiveCell.FormulaR1C1 = "Excel" diapazonas ("A3"). Pasirinkite pabaigos sub

VBA bet kuri eilutė, einanti po (apostrofo ženklas) nevykdomas. Tai komentaras, skirtas tik informacijai. Jei pašalinsite pirmas penkias šio kodo eilutes, makrokomanda vis tiek veiks taip, kaip tikėtasi.

Dabar leiskite man greitai aprašyti, ką daro kiekviena kodo eilutė:

Kodas prasideda „Sub“, po kurio eina makrokomandos pavadinimas ir tuščias skliaustas. Sub yra trumpas Subroutine. Kiekviena VBA paprograma (dar vadinama procedūra) prasideda nuo „Sub“ ir baigiasi „Sub Sub“.

  • Diapazonas („A2“). Pasirinkite - Ši eilutė pasirenka langelį A2.
  • ActiveCell.FormulaR1C1 = „Excel“ - šioje eilutėje aktyviame langelyje įvedamas tekstas „Excel“. Kadangi pirmuoju žingsniu pasirinkome A2, jis tampa mūsų aktyvia ląstele.
  • Diapazonas („A3“). Pasirinkite - Taip pasirenkamas langelis A3. Tai atsitinka, kai įvedę tekstą paspaudžiame „Enter“ klavišą, kurio rezultatas buvo pasirinkti langelį A3.

Tikiuosi, kad jau turite pagrindinį supratimą, kaip įrašyti makrokomandą „Excel“.

Atminkite, kad makro įrašymo įrenginio parašytas kodas jokiu būdu nėra efektyvus kodas.

Makro įrašymo įrenginys kartais prideda daug pūkų prie kodo, kuris kartais nėra būtinas. Bet tai nereiškia, kad tai nėra naudinga. Kam nors mokantis VBA, makro įrašymo įrenginys gali būti puikus būdas analizuoti, kaip viskas veikia VBA.

Absoliutus vs santykinis makro įrašymas

Jūs jau žinote apie absoliučias ir santykines nuorodas „Excel“ … tiesa?

Jei ne - pirmiausia perskaitykite šią pamoką apie nuorodas.

Skaityti? Eikime toliau.

Vėliau šiame skyriuje pamatysime, kaip įrašyti makrokomandas absoliučiomis ir santykinėmis nuorodomis. Bet prieš tai leiskite man greitai apibendrinti skirtumą tarp absoliučios ir santykinės nuorodos VBA (jei tingėtumėte ir neskaitytumėte prieš kelias eilutes pateiktos nuorodos):

Jei makrokomandai įrašyti naudojate absoliučią nuorodos parinktį, VBA kodas visada nurodys tas pačias ląsteles, kurias naudojote. Pvz., Jei pasirinksite langelį A2, įveskite tekstą „Excel“ ir kiekvieną kartą paspauskite „Enter“ - nesvarbu, kur esate darbalapyje ir nesvarbu, kuris langelis pasirinktas, jūsų kodas pirmiausia pasirinktų langelį A2, įvestų tekstą „Excel“ ir tada pereikite prie ląstelės A3.

Jei makrokomandai įrašyti naudojate santykinės nuorodos parinktį, VBA nekoduos langelių nuorodų. Priešingai, jis sutelktų dėmesį į judėjimą, palyginti su aktyvia ląstele. Pavyzdžiui, tarkime, kad jau pasirinkote langelį A1 ir pradedate įrašyti makrokomandą santykinio atskaitos režimu.

Dabar pasirenkate langelį A2, įveskite tekstą „Excel“ ir paspauskite įvesties klavišą. Dabar, kai paleisite šią makrokomandą, ji negrįš į langelį A2, vietoj to ji judės, palyginti su aktyvia ląstele. Pvz., Jei pasirinktas langelis K3, jis pereis į K4, įveskite tekstą „Excel“ ir galiausiai pasirinkite langelį K5.

Dabar leiskite man pasakyti, kaip įrašyti makrokomandą santykinių nuorodų režimu:

  1. Pasirinkite langelį A1.
  2. Spustelėkite skirtuką Kūrėjas.
  3. Kodo grupėje spustelėkite mygtuką „Naudoti santykines nuorodas“. Jis taps žalias, rodydamas, kad jis įjungtas.
  4. Spustelėkite mygtuką Įrašyti makrokomandą.
  5. Dialogo lange Įrašyti makrokomandą įveskite makrokomandos pavadinimą. Aš naudoju pavadinimą EnterTextRelRef.
  6. Pasirinkę parinktį Parduotuvės makrokomanda, pasirinkite „Ši darbaknygė“.
  7. Spustelėkite Gerai.
  8. Pasirinkite langelį A2.
  9. Įveskite tekstą „Excel“ (arba galite įvesti savo vardą).
  10. Paspauskite klavišą Enter. Perkelkite žymeklį į langelį A3.
  11. Spustelėkite skirtuką Kūrėjas ir sustabdykite įrašymą.

Tai įrašytų makrokomandą santykinio atskaitos režimu.

Dabar padaryk tai.

  1. Pasirinkite bet kurį langelį (išskyrus A1).
  2. Spustelėkite skirtuką Kūrėjas.
  3. Grupėje Kodas spustelėkite mygtuką Makrokomandos.
  4. Dialogo lange makrokomandos spustelėkite makro pavadinimą - EnterTextRelRef.
  5. Spustelėkite mygtuką Vykdyti.

Kas atsitinka? Ar žymeklis grįžo į langelį A3.

To nebūtų - nes makrokomandą įrašėte santykinio atskaitos režimu. Taigi žymeklis judėtų aktyviosios ląstelės atžvilgiu. Pvz., Jei tai padarysite pasirinkę langelį K3, jis įves tekstą „Excel“ yra langelis K4 ir galiausiai pasirinks langelį K5.

Štai kodas, kuris įrašomas užpakalinėje dalyje (VB redaktoriaus modulio kodo langas):

Sub EnterTextRelRef () '' EnterTextRelRef Macro '' ActiveCell.Offset (1, 0). Range ("A1"). Pasirinkite ActiveCell.FormulaR1C1 = "Excel" ActiveCell.Offset (1, 0). Range ("A1"). Pasirinkite Pabaigos antraštė

Atminkite, kad visas šis kodas niekur nereiškia K3 arba K4 langelių. Vietoj to jis naudoja „Activecell“, norėdamas nurodyti pasirinktą langelį, ir poslinkį, kad judėtų, palyginti su aktyvia ląstele.

Nesijaudinkite dėl diapazono („A1“) dalies, kurią turi kodas. Tai vienas iš tų nereikalingų kodų, kuriuos prideda makro įrašymo įrenginys, kuris neturi jokio tikslo ir gali būti pašalintas. Kodas puikiai veiktų be jo.

Mygtukas „Naudoti santykinę nuorodą“ skirtuke „Kūrėjas“ yra perjungimo mygtukas. Spustelėję galite jį išjungti (ir perjungti atgal į absoliučią nuorodą).

Ko negali padaryti makro įrašymo įrenginys

Makro įrašymo įrenginys puikiai seka jus „Excel“ ir įrašo tikslius veiksmus, tačiau gali nepavykti, kai reikia daugiau.

  • Negalite vykdyti kodo nepasirinkę objekto. Jei norite, kad makro įrašymo įrenginys pereitų į kitą darbalapį ir paryškintų visas užpildytas langelius A stulpelyje, neišeidamas iš dabartinio darbalapio, jis negalės to padaryti. Taip yra todėl, kad jei paprašysiu jūsų tai padaryti, net jūs negalėsite to padaryti (nepalikdami dabartinio lapo). Ir jei negalite to padaryti patys, kaip makro įrašymo įrenginys užfiksuos jūsų veiksmus. Tokiais atvejais turite rankiniu būdu pereiti ir sukurti/redaguoti kodą.
  • Negalite sukurti pasirinktinės funkcijos naudodami makro įrašymo įrenginį. Naudodami VBA galite sukurti pasirinktines funkcijas, kurias galite naudoti darbalapyje kaip įprastas funkcijas. Tai galite sukurti rašydami kodą rankiniu būdu.
  • Negalite paleisti kodų pagal įvykius: VBA galite naudoti daugybę įvykių, pvz., Atidaryti darbaknygę, pridėti darbalapį, dukart spustelėti langelį ir tt, kad paleistumėte su tuo įvykiu susietą kodą. Norėdami tai padaryti, galite naudoti makro įrašymo įrenginį.
  • Negalite sukurti kilpų naudodami makro įrašymo įrenginį. Kai rankiniu būdu įvedate kodą, galite panaudoti VBA kilpų galią (pvz., „Kitas“, „Už kiekvieną kitą“, „Daryti kol“, „Daryti iki“). Tačiau įrašydami makrokomandą to padaryti negalite.
  • Negalite analizuoti sąlygų: Naudodami makro įrašymo įrenginį, galite patikrinti kodo sąlygas. Jei rankiniu būdu rašote VBA kodą, galite naudoti IF IF Else teiginius, kad išanalizuotumėte sąlygą ir paleistumėte kodą, jei jis teisingas (arba kitą kodą, jei klaidingas).
  • Makro procedūroje negalite pateikti argumentų: Kai įrašote makrokomandą, ji niekada neturės jokių argumentų. Paprogramė gali priimti įvesties argumentus, kurie gali būti naudojami makrokomandoje užduočiai atlikti. Įrašant makrokomandą to padaryti negalima, nes įrašytos makrokomandos yra nepriklausomos ir nėra prijungtos prie kitų esamų makrokomandų.

Makroaktyvūs failų plėtiniai

Kai įrašote makrokomandą arba rankiniu būdu rašote VBA kodą „Excel“, turite išsaugoti failą naudodami makrokomandų failo plėtinį (.xlsm).

Iki „Excel 2007“ pakako vieno failo formato - .xls.

Tačiau nuo 2007 m. „.Xlsx“ buvo pristatytas kaip standartinis failo plėtinys. Failai, išsaugoti kaip .xlsx, negali turėti makrokomandos. Taigi, jei turite failą su plėtiniu .xlsx ir įrašote/rašote makrokomandą ir ją išsaugote, ji įspės, kad išsaugotumėte ją makrokomandų formatu, ir parodys dialogą (kaip parodyta žemiau):

Jei pasirinksite Ne, „Excel“ leidžia išsaugoti jį makrokomandų formatu. Bet jei spustelėsite Taip, „Excel“ automatiškai pašalins visą kodą iš jūsų darbaknygės ir išsaugos jį kaip .xlsx darbaknygę.

Taigi, jei jūsų darbaknygėje yra makrokomanda, turite ją išsaugoti .xlsm formatu, kad išsaugotumėte tą makrokomandą.

Skirtingi būdai paleisti makrokomandą „Excel“

Iki šiol mes matėme tik vieną būdą, kaip paleisti makrokomandą „Excel“ - naudojant dialogo langą Makro.

Tačiau yra daug būdų, kaip paleisti makrokomandas.

  1. Vykdyti makrokomandą iš juostelės (skirtukas kūrėjas)
  2. Naudojant spartųjį klavišą (kurį turite priskirti)
  3. Priskirkite makrokomandą formai
  4. Priskirkite makrokomandą mygtukui
  5. Paleiskite makrokomandą iš VB redaktoriaus

Išvada - įrašykite makrokomandą įstrigus

Jau minėjau, kad makro įrašymo įrenginys yra naudingas įrankis visiems, dirbantiems su VBA „Excel“.

Kai kelis kartus naudosite makro įrašymo įrenginį, pastebėsite, kad jis išspjauna daug nereikalingo kodo. Tačiau tai vis dar naudinga ir suteikia jums idėjų, nuo ko pradėti. Pavyzdžiui, jei paprašysiu filtruoti langelių stulpelį naudojant VBA ir jūs neįsivaizduojate, kas yra sintaksė, galite greitai įrašyti makrokomandą ir patikrinti kodą.

Makro įrašymo įrenginys yra nepakeičiamas įrankis ir net po daugelio metų VBA kodavimo patirties diržu dažnai kreipiuosi pagalbos į makro įrašymo įrenginį.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave