Makro salvestamine Excelis - samm -sammult juhend

Isegi kui olete Excel VBA maailma täielik algaja, saate hõlpsalt makro salvestada ja osa oma töödest automatiseerida.

Selles üksikasjalikus juhendis käsitlen kõike, mida peate teadma, et alustada Excelis makrode salvestamist ja kasutamist.

Kui olete huvitatud VBA lihtsast õppimisest, vaadake minu lehte Online VBA koolitus Excelis.

Mis on makro?

Kui olete VBA algaja, lubage mul kõigepealt teile öelda, mis on makro - lõppude lõpuks kasutan seda terminit kogu õpetuses.

Makro on VBA -s (Visual Basic for Applications) kirjutatud kood, mis võimaldab käivitada kooditüki alati, kui see käivitatakse.

Sageli leiate, et inimesed (kaasa arvatud mina) viitavad VBA -koodile kui makrole - olenemata sellest, kas see on loodud makrosalvesti abil või käsitsi.

Makro salvestamisel jälgib Excel tähelepanelikult teie tehtud samme ja märgib selle üles arusaadavas keeles - mis on VBA.

Ja kuna Excel on tõeliselt hea märkmete tegija, loob see väga üksikasjaliku koodi (nagu me näeme selles õpetuses hiljem).

Nüüd, kui lõpetate salvestamise, salvestate makro ja käivitate selle, naaseb Excel lihtsalt selle loodud VBA -koodi juurde ja järgib täpselt samu samme.

See tähendab, et isegi kui te ei tea VBA -st midagi, saate mõningaid ülesandeid automatiseerida, kui lasete Excelil oma sammud üks kord salvestada ja seejärel neid hiljem uuesti kasutada.

Nüüd sukeldume ja vaatame, kuidas Excelis makro salvestada.

Arendaja vahekaardi hankimine lindile

Makro salvestamise esimene samm on lindi arendaja vahekaardi hankimine.

Kui näete lindil juba arendaja vahekaarti, minge järgmise jao juurde, muidu järgige alltoodud samme.

  • Paremklõpsake lindi olemasolevaid vahelehti ja klõpsake suvandit „Kohanda linti”. See avab dialoogiboksi Exceli suvandid.
  • Dialoogiboksis Exceli suvandid on suvandid Kohandage linti. Parempoolsel paanil Peamised vahelehed kontrollige valikut Arendaja.
  • Klõpsake nuppu OK.

Ülaltoodud toimingud muudavad lindi piirkonnas vahekaardi Arendaja kättesaadavaks.

Makro salvestamine Excelis

Nüüd, kui meil on kõik paigas, õpime, kuidas Excelis makro salvestada.

Salvestame väga lihtsa makro - selle, mis valib lahtri ja sisestab sinna teksti „Excel”. Kasutan selle makro salvestamisel teksti „Excel”, kuid sisestage julgelt oma nimi või muu teile meelepärane tekst.

Makro salvestamiseks toimige järgmiselt.

  1. Klõpsake vahekaarti Arendaja.
  2. Klõpsake rühmas Kood nuppu Makro. See avab dialoogiboksi „Makro salvestamine”.
  3. Sisestage dialoogiboksis Makro salvestamine oma makro nimi. Ma kasutan nime EnterText. Makro nimetamisel peate järgima mõningaid nimetamistingimusi. Näiteks ei saa te kasutada tühikuid nende vahel. Tavaliselt eelistan oma makronimesid hoida ühe sõnana, erinevate osadega, millel on suur algustäht. Kahe sõna - näiteks Enter_Text - eraldamiseks võite kasutada ka alajoont.
  4. (Valikuline samm) Soovi korral saate määrata klaviatuuri otsetee. Sel juhul kasutame kiirklahvi Control + Shift + N. Pidage meeles, et siin määratud otsetee tühistab teie töövihikus kõik olemasolevad lühendid. Näiteks kui määrate otsetee Control + S, ei saa te seda töövihiku salvestamiseks kasutada (selle asemel täidab see makro iga kord, kui seda kasutate).
  5. Veenduge, et suvandis „Salvesta makro” oleks valitud „See töövihik”. See samm tagab, et makro on töövihiku osa. See on olemas, kui selle salvestate ja uuesti avate või isegi kui seda kellegagi jagate.
  6. (Valikuline samm) Sisestage kirjeldus. Tavaliselt ma seda ei tee, aga kui olete väga organiseeritud, võiksite lisada, mis see makro on.
  7. Klõpsake nuppu OK. Niipea kui klõpsate nuppu OK, hakkab see teie toiminguid Excelis salvestama. Vahekaardil Arendaja näete nuppu „Lõpeta salvestamine”, mis näitab, et makro salvestamine on pooleli.
  8. Valige lahter A2.
  9. Sisestage tekst Excel (või võite kasutada oma nime).
  10. Vajutage sisestusklahvi. See valib lahtri A3.
  11. Klõpsake vahekaarti Arendaja nuppu Lõpeta salvestamine.

Palju õnne!

Olete just salvestanud oma esimese makro Excelis. Sa pole enam makro neitsi.

Kuigi makro ei tee midagi kasulikku, täidab see oma eesmärki, selgitades, kuidas makrosalvesti Excelis töötab.

Nüüd lähme edasi ja katsetame seda makro.

Makro testimiseks toimige järgmiselt.

  1. Kustutage lahtris A2 olev tekst. Selle eesmärk on testida, kas makro lisab lahtrisse A2 teksti või mitte.
  2. Valige ükskõik milline lahter - peale A2. Selle eesmärk on testida, kas makro valib lahtri A2 või mitte.
  3. Klõpsake vahekaarti Arendaja.
  4. Klõpsake rühmas Kood nuppu Makrod.
  5. Klõpsake dialoogiboksis Makro makro Nimi - EnterText.
  6. Klõpsake nuppu Käivita.

Märkate, et niipea, kui klõpsate nuppu Käivita, sisestatakse lahtrisse A2 tekst „Excel” ja valitakse lahter A3.

Nüüd võib see kõik juhtuda sekundi murdosa jooksul, kuid tegelikult järgis makro - täpselt nagu kuulekas päkapikk - täpselt samme, mida makro salvestamisel näitasite.

Nii et makro valib kõigepealt lahtri A2, seejärel sisestab teksti Excel ja seejärel valib lahtri A3.

Märkus. Makro saate käivitada ka kiirklahvi abil Control + tõstuklahv + N (hoidke all klahve Control ja Shift ning seejärel vajutage klahvi N). See on sama kiirklahv, mille määrasime makrole selle salvestamisel.

Mida teeb makro salvestamine taustaprogrammis

Nüüd läheme Exceli taustaprogrammi - VB redaktorisse - ja vaatame, mida makro tegelikult salvestab.

VB redaktori avamiseks Excelis toimige järgmiselt.

  1. Klõpsake vahekaarti Arendaja.
  2. Klõpsake rühmas Kood nuppu Visual Basic.

Või võite kasutada kiirklahvi - ALT + F11 (hoidke all klahvi ALT ja vajutage klahvi F11) kahe ülaltoodud sammu asemel. See otsetee avab ka sama VB redaktori.

Kui näete VB redaktorit esimest korda, ärge laske end üle koormata.

Lubage mul teile kiiresti tutvuda VB Editori anatoomiaga.

  • Menüüriba: Siin on teil kõik VB Editori valikud. Mõelge sellele kui VBA lindile. See sisaldab käske, mida saate kasutada VB redaktoriga töötamisel.
  • Tööriistariba - See on nagu VB -redaktori kiirjuurdepääsu tööriistariba. See sisaldab mõningaid kasulikke valikuid ja saate sellele rohkem võimalusi lisada. Selle eeliseks on see, et tööriistariba valik on vaid hiireklõpsu kaugusel.
  • Project Exploreri aken - Siin loetleb Excel kõik töövihikud ja kõik töövihiku objektid. Näiteks kui meil on 3 töölehega töövihik, kuvatakse see Project Exploreris. Siin on mõned täiendavad objektid, näiteks moodulid, kasutajavormid ja klassimoodulid.
  • Koodiaken - See on koht, kus VBA kood salvestatakse või kirjutatakse. Iga Project Exploreris loetletud objekti (nt töölehed, töövihikud, moodulid jne) jaoks on olemas koodiaken. Näeme hiljem selles õpetuses, et salvestatud makro läheb mooduli koodiaknasse.
  • Atribuutide aken - Selles aknas näete iga objekti omadusi. Kasutan seda akent sageli objektide nimetamiseks või peidetud atribuutide muutmiseks. Seda akent ei pruugi VB redaktori avamisel näha. Selle kuvamiseks klõpsake vahekaarti Vaade ja valige Atribuutide aken.
  • Kohene aken - Ma kasutan koodi kirjutamisel sageli vahetu akent. See on kasulik, kui soovite mõnda avaldust testida või silumise ajal. See ei pruugi vaikimisi olla nähtav ja saate selle kuvada, klõpsates vahekaarti Vaade ja valides suvandi Kohene aken.

Makrot salvestades - EnterText, VB redaktoris juhtusid järgmised asjad:

  • Sisestati uus moodul.
  • Makro salvestati meie määratud nimega - EnterText
  • Kood kirjutati mooduli koodiaknasse.

Seega, kui topeltklõpsate moodulil (antud juhul moodul 1), ilmub allpool kuvatud koodiaken.

Siin on kood, mille makrosalvesti meile andis:

Sub EnterText () '' EnterText Macro '' Klaviatuuri otsetee: Ctrl+Tõstuklahv+N 'vahemik ("A2"). Valige ActiveCell.FormulaR1C1 = "Exceli vahemik (" A3 "). Valige Lõpeta alam

VBA -s mis tahes rida, mis järgneb (apostroofimärki) ei täideta. See on kommentaar, mis on paigutatud ainult informatiivsel eesmärgil. Kui eemaldate selle koodi viis esimest rida, töötab makro endiselt ootuspäraselt.

Nüüd lubage mul kiiresti kirjeldada, mida iga koodirida teeb:

Kood algab Subiga, millele järgneb makro nimi ja tühi sulg. Sub on lühend alamprogrammist. Iga alamprogramm (nimetatakse ka protseduuriks) VBA -s algab Sub -ga ja lõpeb End Sub -ga.

  • Vahemik (“A2”). Valige - See rida valib lahtri A2.
  • ActiveCell.FormulaR1C1 = “Excel” - see rida sisestab aktiivsesse lahtrisse teksti Excel. Kuna valisime esimeseks sammuks A2, saab sellest meie aktiivne rakk.
  • Vahemik (“A3”). Valige - See valib lahtri A3. See juhtub siis, kui pärast teksti sisestamist vajutasime sisestusklahvi, mille tulemuseks oli lahtri A3 valimine.

Loodan, et praeguseks on teil olemas põhiteadmised makro salvestamiseks Excelisse.

Pidage meeles, et makrosalvesti kirjutatud kood ei ole mingil juhul tõhus kood.

Makrosalvesti lisab mõnikord koodile palju kohevust, mis pole kohati vajalik. Kuid see ei tähenda, et see pole kasulik. VBA -d õppivale inimesele võib makrosalvesti olla suurepärane võimalus analüüsida, kuidas asjad VBA -s töötavad.

Absoluutne vs suhteline makro salvestamine

Te juba teate Exceli absoluutsetest ja suhtelistest viidetest … eks?

Kui te seda ei tee - lugege esmalt seda õpetust viidete kohta.

Loe seda? Liigume edasi.

Selles jaotises näeme hiljem, kuidas makrosid absoluutsetes ja suhtelistes viidetes salvestada. Kuid enne seda lubage mul kiiresti kokku võtta erinevus absoluutse ja suhtelise viite vahel VBA -s (juhul, kui olete laisk ja ei loe linki, mille ma paar rida tagasi andsin):

Kui kasutate makro salvestamiseks absoluutset viitevalikut, viitab VBA -kood alati samadele lahtritele, mida kasutasite. Näiteks kui valite lahtri A2, sisestage tekst Excel ja vajutage sisestusklahvi iga kord - olenemata sellest, kus te töölehel asute ja olenemata sellest, milline lahter on valitud, valib teie kood kõigepealt lahtri A2, sisestage tekst Excel ja seejärel liikuge lahtrisse A3.

Kui kasutate makro salvestamiseks suhtelise viite valikut, ei kodeeriks VBA lahtriviiteid kõvakoodiga. Pigem keskenduks see aktiivse rakuga võrreldes liikumisele. Oletame näiteks, et olete juba valinud lahtri A1 ja alustate makro salvestamist suhtelises võrdlusrežiimis.

Nüüd valite lahtri A2, sisestate teksti Excel ja vajutate sisestusklahvi. Nüüd, kui käivitate selle makro, ei naase see lahtrisse A2, vaid liigub aktiivse lahtri suhtes. Näiteks kui on valitud lahter K3, liigub see K4 -le, sisestage tekst Excel ja seejärel valige lõpuks lahter K5.

Nüüd lubage mul teile öelda, kuidas salvestada makro suhteliste viidete režiimis:

  1. Valige lahter A1.
  2. Klõpsake vahekaarti Arendaja.
  3. Klõpsake rühmas Kood nuppu „Kasuta suhtelisi viiteid”. See muutub roheliseks, mis näitab, et see on sisse lülitatud.
  4. Klõpsake nuppu Salvesta makro.
  5. Sisestage dialoogiboksis Makro salvestamine oma makro nimi. Ma kasutan nime EnterTextRelRef.
  6. Veenduge, et suvandis Poe makro sisse oleks valitud „See töövihik”.
  7. Klõpsake nuppu OK.
  8. Valige lahter A2.
  9. Sisestage tekst Excel (või võite sisestada oma nime).
  10. Vajutage sisestusklahvi. See viib kursori lahtrisse A3.
  11. Klõpsake vahekaarti Arendaja nuppu Lõpeta salvestamine.

See salvestaks makro suhtelises võrdlusrežiimis.

Nüüd tehke seda.

  1. Valige suvaline lahter (välja arvatud A1).
  2. Klõpsake vahekaarti Arendaja.
  3. Klõpsake rühmas Kood nuppu Makrod.
  4. Klõpsake dialoogiboksis Makro makro nime - EnterTextRelRef.
  5. Klõpsake nuppu Käivita.

Mis juhtub? Kas kursor läks tagasi lahtrisse A3.

Ei oleks - kuna olete makro salvestanud suhtelises võrdlusrežiimis. Seega liiguks kursor aktiivse lahtri suhtes. Näiteks kui teete seda lahtri K3 valimisel, sisestab see teksti Excel on lahter K4 ja valib lõpuks lahtri K5.

Siin on kood, mis salvestatakse taustaprogrammi (VB Editori mooduli koodi aken):

Sub EnterTextRelRef () '' EnterTextRelRef Macro '' ActiveCell.Offset (1, 0) .Range ("A1"). Valige ActiveCell.FormulaR1C1 = "Excel" ActiveCell.Offset (1, 0) .Range ("A1"). Valige Lõpeta alam

Pange tähele, et kogu see kood ei viita lahtritele K3 või K4 kusagil. Selle asemel viitab see valitud lahtrile Activecell ja aktiivse lahtri suhtes liikumiseks Offset.

Ärge muretsege koodi ulatuse („A1”) osa pärast. See on üks neist mittevajalikest koodidest, mille makrosalvesti lisab, millel pole mingit eesmärki ja mille saab eemaldada. Ilma selleta töötaks kood suurepäraselt.

Vahekaardi Arendaja nupp „Kasuta suhtelist viidet” on lülitusnupp. Saate selle klõpsates välja lülitada (ja lülituda tagasi absoluutviidetele).

Mida makrosalvesti teha ei saa

Makrosalvesti jälgib teid suurepäraselt Excelis ja salvestab teie täpsed sammud, kuid see võib teid ebaõnnestuda, kui vajate rohkem.

  • Te ei saa koodi käivitada ilma objekti valimata. Kui soovite, et makrosalvesti läheks järgmisele töölehele ja tõstaks veerus A kõik täidetud lahtrid esile praegusest töölehest lahkumata, ei saa see seda teha. Selle põhjuseks on asjaolu, et kui ma palun teil seda teha, ei saa te isegi seda teha (praegusest lehest lahkumata). Ja kui te ei saa seda ise teha, siis kuidas makrosalvesti teie toiminguid jäädvustab. Sellistel juhtudel peate koodi käsitsi looma/muutma.
  • Makrosalvestiga ei saa kohandatud funktsiooni luua. VBA abil saate luua kohandatud funktsioone, mida saate töölehel tavaliste funktsioonidena kasutada. Selle saate luua koodi käsitsi kirjutades.
  • Te ei saa sündmustel põhinevaid koode käivitada: VBA -s saate selle sündmusega seotud koodi käitamiseks kasutada paljusid sündmusi - näiteks töövihiku avamist, töölehe lisamist, lahtri topeltklõpsamist jne. Selleks saate kasutada makrosalvesti.
  • Makrosalvestiga silmuseid luua ei saa. Kui sisestate koodi käsitsi, saate VBA -s kasutada silmuste võimsust (nt Järgmine, Iga järgmise jaoks, Tehke kuni, Tehke kuni). Kuid makro salvestamisel ei saa te seda teha.
  • Te ei saa tingimusi analüüsida: Koodis olevaid tingimusi saate kontrollida makrosalvesti abil. Kui kirjutate VBA -koodi käsitsi, saate tingimuste analüüsimiseks kasutada lauset IF Then Else ja käivitada koodi, kui see on tõene (või mõni muu kood, kui vale).
  • Makromenetluses ei saa argumente edastada. Makro salvestamisel pole sellel kunagi argumente. Alamprogramm võib võtta sisendargumente, mida saab makro raames ülesande täitmiseks kasutada. Makro salvestamise ajal ei saa seda teha, kuna salvestatud makrod on sõltumatud ega ole ühendatud ühegi teise olemasoleva makroga.

Makrotoega faililaiendid

Makrot salvestades või Excelis VBA-koodi käsitsi kirjutades peate faili salvestama makrolahendusega faililaiendiga (.xlsm).

Enne Excel 2007 oli piisav ainult üks failivorming - .xls.

Kuid alates 2007. aastast võeti .xlsx kasutusele standardse faililaiendina. Failid, mis on salvestatud nimega .xlsx, ei saa selles makrot hoida. Seega, kui teil on fail .xlsx laiendiga ja salvestate/kirjutate makro ja salvestate selle, hoiatab see teid makro salvestamise vormingus salvestamise eest ja kuvab teile dialoogi (nagu allpool näidatud):

Kui valite Ei, lubab Excel selle salvestada makropõhises vormingus. Kuid kui klõpsate nuppu Jah, eemaldab Excel automaatselt kogu koodi teie töövihikust ja salvestab selle .xlsx töövihikuna.

Seega, kui teie töövihikus on makro, peate selle makro säilitamiseks salvestama .xlsm -vormingus.

Makro käivitamiseks Excelis erinevaid viise

Seni oleme näinud ainult ühte võimalust makro käivitamiseks Excelis - see on dialoogiboks Makro.

Kuid makrosid saab käivitada mitmel viisil.

  1. Makro käitamine lindilt (vahekaart Arendaja)
  2. Klaviatuuri otsetee kasutamine (mille peate määrama)
  3. Määrake makro kujule
  4. Määrake makro nupule
  5. Käivitage VB redaktorist makro

Järeldus - jäädvustatud makro salvestamine

Ma juba mainisin, et makrosalvesti on kasulik tööriist kõigile, kes töötavad Excelis VBA -ga.

Kui kasutate makrosalvesti paar korda, märkate, et see sülitab välja palju tarbetut koodi. Siiski on see endiselt kasulik ja annab teile ideid, kust alustada. Näiteks kui ma palun teil VBA abil lahtrite veergu filtreerida ja teil pole aimugi, mis on süntaks, saate makro kiiresti salvestada ja koodi vaadata.

Makromagnetofon on hädavajalik tööriist ja isegi pärast aastatepikkust VBA kodeerimiskogemust oma vöö all pöördun sageli abi saamiseks makrosalvesti poole.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave