Makron tallentaminen Exceliin - vaiheittainen opas

Vaikka olisitkin täysin uusi aloittelija Excel VBA: n maailmassa, voit helposti tallentaa makron ja automatisoida osan työstäsi.

Tässä yksityiskohtaisessa oppaassa käsitän kaiken, mitä sinun tarvitsee tietää, jotta voit aloittaa makron tallennuksen ja käytön Excelissä.

Jos olet kiinnostunut VBA: n oppimisesta helpolla tavalla, tutustu minun Online Excel VBA -koulutus.

Mikä on makro?

Jos olet aloittelija VBA: ssa, kerron ensin, mikä makro on - käytän tätä termiä koko opetusohjelmassa.

Makro on VBA: ssa (Visual Basic for Applications) kirjoitettu koodi, jonka avulla voit suorittaa koodin aina, kun se suoritetaan.

Usein huomaat, että ihmiset (mukaan lukien minä) viittaavat VBA -koodiin makrona - riippumatta siitä, onko se luotu käyttämällä makron tallenninta tai kirjoitettu manuaalisesti.

Kun tallennat makron, Excel seuraa tarkasti tekemiäsi vaiheita ja kirjoittaa muistiin sen ymmärtämällä kielellä - mikä on VBA.

Ja koska Excel on todella hyvä muistiinpano, se luo erittäin yksityiskohtaisen koodin (kuten näemme myöhemmin tässä opetusohjelmassa).

Kun lopetat tallennuksen, tallennat makron ja suoritat sen, Excel yksinkertaisesti palaa luomalleen VBA -koodille ja seuraa täsmälleen samoja vaiheita.

Tämä tarkoittaa, että vaikka et tiedä mitään VBA: sta, voit automatisoida joitain tehtäviä vain antamalla Excelin tallentaa vaiheet kerran ja käyttää niitä myöhemmin uudelleen.

Katsotaanpa nyt, kuinka makro tallennetaan Exceliin.

Kehittäjä -välilehden avaaminen valintanauhassa

Ensimmäinen vaihe makron tallentamisessa on saada Kehittäjä -välilehti valintanauhaan.

Jos näet jo kehittäjän välilehden valintanauhassa, siirry seuraavaan osioon, muuten toimi seuraavasti:

  • Napsauta hiiren kakkospainikkeella mitä tahansa valintanauhan välilehteä ja napsauta Mukauta valintanauha -vaihtoehtoa. Se avaa Excel -asetukset -valintaikkunan.
  • Excelin asetukset -valintaikkunassa on Muokkaa valintanauhaa -vaihtoehdot. Valitse Päävälilehdet -ruudun oikealla puolella oleva Kehittäjä -vaihtoehto.
  • Napsauta OK.

Yllä olevat vaiheet tekisivät Kehittäjä -välilehden käytettävissä nauha -alueella.

Makron tallentaminen Exceliin

Nyt kun meillä on kaikki paikallaan, opitaan tallentamaan makro Excelissä.

Tallennetaan hyvin yksinkertainen makro - se, joka valitsee solun ja syöttää siihen tekstin "Excel". Käytän tekstiä "Excel" tallennettaessa tätä makroa, mutta voit kirjoittaa nimesi tai minkä tahansa muun haluamasi tekstin.

Voit tallentaa tämän makron seuraavasti:

  1. Napsauta Kehittäjä -välilehteä.
  2. Napsauta Koodi -ryhmässä Makro -painiketta. Tämä avaa Tallenna makro -valintaikkunan.
  3. Kirjoita Makron tallennus -valintaikkunaan makron nimi. Käytän nimeä EnterText. Makron nimeämisessä on noudatettava joitain nimeämisehtoja. Et voi esimerkiksi käyttää välilyöntejä. Yleensä pidän makronimeni yhtenä sanana, jossa on eri osat isolla alkukirjaimella. Voit myös käyttää alaviivaa erottaaksesi kaksi sanaa, kuten Enter_Text.
  4. (Valinnainen vaihe) Voit halutessasi määrittää pikanäppäimen. Tässä tapauksessa käytämme pikanäppäintä Control + Vaihto + N. Muista, että tässä määrittämäsi pikakuvake ohittaa työkirjasi olemassa olevat lyhenteet. Jos esimerkiksi annat pikanäppäimen Control + S, et voi käyttää tätä työkirjan tallentamiseen (sen sijaan se suorittaa makron joka kerta, kun käytät sitä).
  5. Varmista Tallenna makro -vaihtoehdosta, että Tämä työkirja on valittuna. Tämä vaihe varmistaa, että makro on osa työkirjaa. Se on siellä, kun tallennat sen ja avaat sen uudelleen tai vaikka jaat sen jonkun kanssa.
  6. (Valinnainen vaihe) Anna kuvaus. En yleensä tee tätä, mutta jos olet erittäin järjestäytynyt, voit halutessasi lisätä makron tarkoituksen.
  7. Napsauta OK. Heti kun napsautat OK, se alkaa tallentaa toimintojasi Excelissä. Näet Kehittäjä -välilehden Lopeta tallennus -painikkeen, joka osoittaa, että makrotallennus on käynnissä.
  8. Valitse solu A2.
  9. Kirjoita teksti Excel (tai voit käyttää nimeäsi).
  10. Paina Enter -näppäintä. Tämä valitsee solun A3.
  11. Napsauta Kehittäjä -välilehden Lopeta tallennus -painiketta.

Onnittelut!

Olet juuri tallentanut ensimmäisen makron Excelissä. Et ole enää makro -neitsyt.

Makro ei tee mitään hyödyllistä, mutta se palvelee tarkoitustaan ​​selittäessään, kuinka makrotallennin toimii Excelissä.

Mennään nyt testaamaan tätä makroa.

Testaa makro seuraavasti:

  1. Poista teksti solusta A2. Tällä testataan, lisääkö makro tekstin soluun A2 vai ei.
  2. Valitse mikä tahansa solu - muu kuin A2. Tällä testataan, valitseeko makro solun A2 vai ei.
  3. Napsauta Kehittäjä -välilehteä.
  4. Napsauta Koodi -ryhmässä Makrot -painiketta.
  5. Napsauta Makro -valintaikkunassa makroa Nimi - EnterText.
  6. Napsauta Suorita -painiketta.

Huomaat, että heti kun napsautat Suorita -painiketta, teksti "Excel" lisätään soluun A2 ja solu A3 valitaan.

Nyt tämä kaikki voi tapahtua sekunnin murto -osassa, mutta todellisuudessa makro - aivan kuin tottelevainen tonttu - seurasi tarkkoja vaiheita, jotka näytit makron tallennuksen aikana.

Makro valitsee siis ensin solun A2 ja syöttää sitten tekstin Excel ja valitsee sitten solun A3.

Huomautus: Voit suorittaa makron myös pikanäppäimellä Ctrl + Vaihto + N (pidä Control- ja Shift -näppäimiä painettuna ja paina sitten N -näppäintä). Tämä on sama pikanäppäin, jonka annoimme makrolle sen tallennuksen aikana.

Makron tallentaminen taustaohjelmassa

Mennään nyt Excelin taustaohjelmaan - VB Editoriin - ja katsotaan, mitä makron tallennus todella tekee.

Voit avata VB Editorin Excelissä seuraavasti:

  1. Napsauta Kehittäjä -välilehteä.
  2. Napsauta Koodi -ryhmässä Visual Basic -painiketta.

Tai voit käyttää pikanäppäintä - ALT + F11 (pidä ALT -näppäintä painettuna ja paina F11) kahden yllä olevan vaiheen sijasta. Tämä pikakuvake avaa myös saman VB -editorin.

Jos näet VB -editorin ensimmäistä kertaa, älä hukkua.

Haluan tutustua nopeasti VB Editorin anatomiaan.

  • Valikkopalkki: Tässä on kaikki VB Editorin vaihtoehdot. Harkitse tätä VBA: n nauhana. Se sisältää komentoja, joita voit käyttää työskennellessäsi VB Editorin kanssa.
  • Työkalurivi - Tämä on kuin VB -editorin Quick Access Toolbar. Siinä on joitain hyödyllisiä vaihtoehtoja, ja voit lisätä siihen lisää vaihtoehtoja. Sen etuna on, että työkalupalkin vaihtoehto on vain napsautuksen päässä.
  • Project Explorer -ikkuna - Tässä Excel luettelee kaikki työkirjat ja kaikki työkirjan objektit. Jos esimerkiksi meillä on työkirja, jossa on 3 laskentataulukkoa, se näkyy Project Explorerissa. Tässä on joitain lisäobjekteja, kuten moduuleja, käyttäjälomakkeita ja luokkamoduuleja.
  • Koodi -ikkuna - Tähän VBA -koodi tallennetaan tai kirjoitetaan. Jokaiselle Project Explorerissa luetellulle objektille on koodi -ikkuna - kuten laskentataulukot, työkirjat, moduulit jne. Näemme myöhemmin tässä opetusohjelmassa, että tallennettu makro siirtyy moduulin koodi -ikkunaan.
  • Ominaisuudet -ikkuna - Näet jokaisen objektin ominaisuudet tässä ikkunassa. Käytän tätä ikkunaa usein objektien nimeämiseen tai piilotettujen ominaisuuksien muuttamiseen. Et ehkä näe tätä ikkunaa, kun avaat VB -editorin. Näytä tämä napsauttamalla Näytä -välilehteä ja valitsemalla Ominaisuudet -ikkuna.
  • Välitön ikkuna - Käytän usein välitöntä ikkunaa kirjoittaessani koodia. Se on hyödyllinen, kun haluat testata joitakin lausuntoja tai virheenkorjauksen aikana. Se ei ehkä ole oletuksena näkyvissä, ja voit näyttää sen napsauttamalla Näytä -välilehteä ja valitsemalla Välitön ikkuna -vaihtoehdon.

Kun tallensimme makron - EnterText, seuraavat asiat tapahtuivat VB Editorissa:

  • Uusi moduuli lisättiin.
  • Makro tallennettiin määrittämällämme nimellä - EnterText
  • Koodi kirjoitettiin moduulin koodi -ikkunaan.

Joten jos kaksoisnapsautat moduulia (tässä tapauksessa moduuli 1), näkyviin tulee alla oleva koodi-ikkuna.

Tässä on makron tallentimen antama koodi:

Sub EnterText () '' EnterText Macro '' Pikanäppäin: Ctrl+Vaihto+N '-alue ("A2"). Valitse ActiveCell.FormulaR1C1 = "Excel" -alue ("A3").

VBA: ssa mikä tahansa rivi, joka seuraa (heittomerkki) ei suoriteta. Se on kommentti, joka on tarkoitettu vain tiedoksi. Jos poistat koodin viisi ensimmäistä riviä, makro toimii edelleen odotetulla tavalla.

Nyt kerron nopeasti, mitä kukin koodirivi tekee:

Koodi alkaa Subilla, jota seuraa makron nimi ja tyhjä sulu. Sub on lyhenne sanoista Subroutine. Jokainen aliohjelma (jota kutsutaan myös menettelyksi) VBA: ssa alkaa Subista ja päättyy End Subiin.

  • Alue (“A2”) - Tämä rivi valitsee solun A2.
  • ActiveCell.FormulaR1C1 = “Excel” - tämä rivi syöttää tekstin Excel aktiiviseen soluun. Koska valitsimme A2: n ensimmäiseksi vaiheeksi, siitä tulee aktiivinen solumme.
  • Alue (“A3”) - Tämä valitsee solun A3. Tämä tapahtuu, kun painamme Enter -näppäintä tekstin syöttämisen jälkeen, jonka tuloksena oli valita solu A3.

Toivon, että sinulla on jo perustiedot makron tallentamisesta Exceliin.

Muista, että makrotallentimen kirjoittama koodi ei ole mitenkään tehokas koodi.

Makrotallennin lisää joskus koodiin paljon nukkaa, jota ei tarvita toisinaan. Mutta tämä ei tarkoita, että siitä ei olisi hyötyä. Jos joku oppii VBA: ta, makrotallennin voi olla loistava tapa analysoida, miten asiat toimivat VBA: ssa.

Absoluuttinen suhteellinen makron tallennus

Tiedätkö jo absoluuttisista ja suhteellisista viitteistä Excelissä … eikö?

Jos et - lue tämä opetusohjelma viitteistä ensin.

Lue se? Siirrytään eteenpäin.

Näemme myöhemmin tässä osiossa, kuinka makroja tallennetaan absoluuttisiin ja suhteellisiin viittauksiin. Mutta ennen sitä kerron lyhyesti VBA: n absoluuttisen ja suhteellisen viitteen välisen eron (jos olet laiska etkä lukenut muutama rivi sitten antamaani linkkiä):

Jos käytät absoluuttista viiteasetusta makron tallentamiseen, VBA -koodi viittaa aina samoihin soluihin, joita käytit. Jos esimerkiksi valitset solun A2, kirjoita teksti Excel ja paina Enter -näppäintä joka kerta - riippumatta siitä, missä olet laskentataulukossa ja riippumatta siitä, mikä solu on valittu, koodisi valitsee ensin solun A2, kirjoita tekstin Excel ja siirry sitten soluun A3.

Jos käytät suhteellisen viittauksen vaihtoehtoa makron tallentamiseen, VBA ei kovakoodaisi soluviittauksia. Pikemminkin se keskittyisi liikkeeseen verrattuna aktiiviseen soluun. Oletetaan esimerkiksi, että olet jo valinnut solun A1 ja aloitat makron tallentamisen suhteellisessa viitetilassa.

Nyt valitset solun A2, kirjoitat tekstin Excel ja painat enter -näppäintä. Nyt kun suoritat tämän makron, se ei palaa soluun A2, vaan liikkuu suhteessa aktiiviseen soluun. Jos esimerkiksi solu K3 on valittu, se siirtyy kohtaan K4, kirjoita teksti Excel ja valitse lopuksi solu K5.

Kerron nyt kuinka makro tallennetaan suhteellisten viitteiden tilassa:

  1. Valitse solu A1.
  2. Napsauta Kehittäjä -välilehteä.
  3. Napsauta Koodi -ryhmässä Käytä suhteellisia viitteitä -painiketta. Se muuttuu vihreäksi, mikä osoittaa, että se on päällä.
  4. Napsauta Tallenna makro -painiketta.
  5. Kirjoita Makron tallennus -valintaikkunaan makron nimi. Käytän nimeä EnterTextRelRef.
  6. Varmista Store -makro -vaihtoehdossa, että Tämä työkirja on valittuna.
  7. Napsauta OK.
  8. Valitse solu A2.
  9. Kirjoita teksti Excel (tai voit kirjoittaa nimesi).
  10. Paina Enter -näppäintä. Tämä vie kohdistimen soluun A3.
  11. Napsauta Kehittäjä -välilehden Lopeta tallennus -painiketta.

Tämä tallentaisi makron suhteellisessa viitetilassa.

Tee nyt tämä.

  1. Valitse mikä tahansa solu (muu kuin A1).
  2. Napsauta Kehittäjä -välilehteä.
  3. Napsauta Koodi -ryhmässä Makrot -painiketta.
  4. Napsauta Makro -valintaikkunassa makron nimeä - EnterTextRelRef.
  5. Napsauta Suorita -painiketta.

Mitä tapahtuu? Palasiko kursori takaisin soluun A3.

Ei olisi - koska olet tallentanut makron suhteellisessa viitetilassa. Joten kohdistin liikkuisi suhteessa aktiiviseen soluun. Jos esimerkiksi teet tämän, kun solu K3 on valittuna, se kirjoittaa tekstin Excel on solu K4 ja valitsee lopulta solun K5.

Tässä on koodi, joka tallennetaan taustaohjelmaan (VB Editor -moduulin koodi -ikkuna):

Sub EnterTextRelRef () '' EnterTextRelRef Macro '' ActiveCell.Offset (1, 0) .Range ("A1"). Valitse ActiveCell.FormulaR1C1 = "Excel" ActiveCell.Offset (1, 0) .Range ("A1"). Valitse Lopeta alaosa

Huomaa, että tämä koko koodi ei viittaa soluihin K3 tai K4 missään. Sen sijaan se käyttää Activecellia viittaamaan valittuun soluun ja siirtymä siirtymään suhteessa aktiiviseen soluun.

Älä välitä koodin alueesta ("A1"). Se on yksi niistä tarpeettomista koodeista, jotka makrotallennin lisää, joilla ei ole tarkoitusta ja jotka voidaan poistaa. Koodi toimisi hyvin ilman sitä.

Kehittäjä -välilehden Käytä suhteellista viitettä -painike on vaihtopainike. Voit poistaa sen käytöstä (ja vaihtaa takaisin absoluuttiseen viittaukseen) napsauttamalla sitä.

Mitä makro -tallennin ei voi tehdä

Makrotallennin on hyvä seuraamaan sinua Excelissä ja tallentamaan tarkat vaiheet, mutta se saattaa epäonnistua, kun tarvitset sitä tehdäksesi enemmän.

  • Et voi suorittaa koodia valitsematta objektia. Jos haluat, että makrotallennin siirtyy seuraavaan laskentataulukkoon ja korostaa kaikki täytetyt solut sarakkeessa A poistumatta nykyisestä laskentataulukosta, se ei voi tehdä tätä. Tämä johtuu siitä, että jos pyydän sinua tekemään tämän, et sinäkään voi tehdä sitä (poistumatta nykyisestä taulukosta). Ja jos et voi tehdä sitä itse, miten makrotallennin kaappaa toimintasi. Tällaisissa tapauksissa sinun täytyy mennä manuaalisesti ja luoda/muokata koodi.
  • Makrotallentimella ei voi luoda mukautettua toimintoa. VBA: n avulla voit luoda mukautettuja toimintoja, joita voit käyttää laskentataulukossa tavallisina funktioina. Voit luoda tämän kirjoittamalla koodin manuaalisesti.
  • Et voi suorittaa tapahtumiin perustuvia koodeja: VBA: ssa voit käyttää monia tapahtumia, kuten työkirjan avaamista, laskentataulukon lisäämistä, solun kaksoisnapsautusta jne., Suorittaaksesi tapahtumaan liittyvän koodin. Voit käyttää tätä makro -tallentimella.
  • Et voi luoda silmukoita makrotallentimella. Kun syötät koodin manuaalisesti, voit hyödyntää silmukoiden voimaa VBA: ssa (kuten For Next, For Every Next, Do While, Do till). Mutta et voi tehdä tätä, kun tallennat makron.
  • Et voi analysoida olosuhteita: Voit tarkistaa koodin olosuhteet makrotallentimella. Jos kirjoitat VBA -koodin manuaalisesti, voit analysoida tilan ja käyttää sitten IF IF Else -lausekkeita ja suorittaa koodin, jos se on tosi (tai toisen koodin, jos epätosi).
  • Et voi välittää argumentteja makromenettelyssä: Kun tallennat makron, sillä ei ole koskaan argumentteja. Aliohjelma voi ottaa syöttöargumentteja, joita voidaan käyttää makron sisällä tehtävän suorittamiseen. Makron tallennuksen aikana tätä ei voi tehdä, koska tallennetut makrot ovat riippumattomia eivätkä ole yhteydessä muihin olemassa oleviin makroihin.

Makro-yhteensopivat tiedostopäätteet

Kun tallennat makron tai kirjoitat VBA-koodin manuaalisesti Exceliin, sinun on tallennettava tiedosto makroyhteydellä varustetulla tiedostotunnisteella (.xlsm).

Ennen Excel 2007: tä riitti vain yksi tiedostomuoto - .xls.

Mutta vuodesta 2007 lähtien .xlsx otettiin käyttöön standarditiedostona. Tiedostot, jotka on tallennettu nimellä .xlsx, eivät voi sisältää makroa. Joten jos sinulla on .xlsx-tiedostopääteinen tiedosto ja tallennat/kirjoitat makron ja tallennat sen, se varoittaa sinua tallentamasta sen makro-yhteensopivassa muodossa ja näyttää sinulle valintaikkunan (kuten alla):

Jos valitset Ei, Excel sallii sen tallentamisen makron mahdollistavassa muodossa. Mutta jos valitset Kyllä, Excel poistaa automaattisesti kaikki koodit työkirjasta ja tallentaa ne .xlsx -työkirjaksi.

Joten jos työkirjassa on makro, sinun on tallennettava se .xlsm -muodossa, jotta makro säilyy.

Eri tapoja ajaa makro Excelissä

Toistaiseksi olemme nähneet vain yhden tavan suorittaa makro Excelissä - joka käyttää Makro -valintaikkunaa.

Makrojen suorittamiseen on kuitenkin useita tapoja.

  1. Makron suorittaminen valintanauhasta (Kehittäjä -välilehti)
  2. Pikanäppäimen käyttäminen (joka on määritettävä)
  3. Määritä makro muotolle
  4. Määritä makro painikkeelle
  5. Suorita makro VB -editorista

Johtopäätös - Tallenna makro, kun se on jumissa

Mainitsin jo, että makrotallennin on hyödyllinen työkalu kaikille, jotka työskentelevät VBA: n kanssa Excelissä.

Kun käytät makron tallenninta muutaman kerran, huomaat, että se sylkee paljon tarpeetonta koodia. Se on kuitenkin edelleen hyödyllinen ja antaa sinulle ideoita mistä aloittaa. Jos esimerkiksi pyydän sinua suodattamaan solusarakkeen VBA: n avulla etkä tiedä, mikä on syntaksi, voit tallentaa makron nopeasti ja tarkistaa koodin.

Makrotallennin on välttämätön työkalu, ja jopa vuosien VBA -koodauskokemuksen jälkeen vyöhykkeessäni turvaudun usein makrotallentimeen.

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave