Tartalomjegyzék
Lépésről lépésre bemutató kezdő felhasználóknak a makrók rögzítéséhez, megtekintéséhez, futtatásához és mentéséhez. Megtanulhatja a makrók Excelben való működésének néhány belső mechanizmusát is.
A makrók nagyszerű módja az ismétlődő feladatok automatizálásának az Excelben. Ha azon kapja magát, hogy újra és újra ugyanazokat a dolgokat végzi, rögzítse mozdulatait makróként, és rendeljen hozzá egy billentyűparancsot. És most már egyetlen billentyűleütéssel automatikusan elvégezheti az összes rögzített műveletet!
Hogyan rögzíthet makrót az Excelben
A többi VBA eszközhöz hasonlóan az Excel makrók is a Fejlesztő lapot, amely alapértelmezés szerint el van rejtve. Az első dolog, amit tennie kell, hogy hozzáadja a Fejlesztő lapot az Excel szalaghoz.
Egy makró Excelben történő rögzítéséhez hajtsa végre a következő lépéseket:
- A Fejlesztő lapon, a Kód: csoport, kattintson a Rekord makró gomb.
Másik lehetőségként kattintson a Rekord makró gomb a bal oldalon a Állapot bár:
Ha az egér helyett inkább a billentyűzettel szeretne dolgozni, nyomja meg a következő billentyűsort: Alt , L , R (egyenként, nem az összes billentyűt egyszerre).
- A Rekord makró párbeszédpanelen konfigurálja a makró fő paramétereit:
- A Makró név mezőbe írja be a makró nevét. Próbálja meg, hogy értelmes és leíró legyen, így később gyorsan meg tudja majd találni a makrót a listában.
A makronevekben használhat betűket, számokat és aláhúzásokat; az első karakter csak betű lehet. A szóközök nem engedélyezettek, ezért a nevet vagy egyszavasnak kell tartania, és minden részt nagybetűvel kell kezdenie (pl. MyFirstMacro ) vagy a szavakat aláhúzással elválasztva (pl. My_First_Macro ).
- A Rövidzáras billentyű mezőbe írjon be egy tetszőleges betűt, hogy billentyűparancsot rendeljen a makróhoz (opcionális).
Nagy- és kisbetűk egyaránt használhatók, de célszerű nagybetűs billentyűkombinációkat használni ( Ctrl + Shift + betű ), mert a makró gyorsbillentyűk felülírják az Excel alapértelmezett gyorsbillentyűit, amíg a makrót tartalmazó munkafüzet nyitva van. Ha például Ctrl + S billentyűt rendel egy makróhoz, akkor elveszíti az Excel fájlok gyorsbillentyűvel történő mentésének lehetőségét. A Ctrl + Shift + S billentyűkombináció hozzárendelése megtartja aszabványos mentési parancsikon.
- A Makró tárolása legördülő listából válassza ki, hogy hol szeretné tárolni a makrót:
- Személyes makró munkafüzet - a makrót egy speciális munkafüzetbe tárolja, amelynek neve Személyes.xlsb Az ebben a munkafüzetben tárolt összes makró elérhető, amikor csak használja az Excelt.
- Ez a munkafüzet (alapértelmezett) - a makró az aktuális munkafüzetben tárolódik, és elérhető lesz, amikor újra megnyitja a munkafüzetet, vagy megosztja azt más felhasználókkal.
- Új munkafüzet - új munkafüzetet hoz létre, és rögzíti a makrót a munkafüzetbe.
- A Leírás mezőbe írjon be egy rövid leírást arról, hogy mit csinál a makró (opcionális).
Bár ez a mező opcionális, azt javaslom, hogy mindig adjon meg egy rövid leírást. Ha sok különböző makrót hoz létre, ez segít gyorsan megérteni, hogy az egyes makrók mit csinálnak.
- Kattintson a címre. OK a makró rögzítésének megkezdéséhez.
- A Makró név mezőbe írja be a makró nevét. Próbálja meg, hogy értelmes és leíró legyen, így később gyorsan meg tudja majd találni a makrót a listában.
- Végezze el az automatizálni kívánt műveleteket (lásd a felvételi makró példáját).
- Ha végzett, kattintson a Felvétel leállítása gombot a Fejlesztő tab:
Vagy az analóg gomb a Állapot bár:
Példa egy makró rögzítésére Excelben
Hogy lássuk, hogyan működik a gyakorlatban, rögzítsünk egy makrót, amely a kijelölt cellákra alkalmaz némi formázást. Ehhez tegyük a következőket:
- Jelöljön ki egy vagy több cellát, amelyet formázni szeretne.
- A Fejlesztő lap vagy Állapot sáv, kattintson a Rekord makró .
- A Rekord makró párbeszédpanelen konfigurálja a következő beállításokat:
- A makró elnevezése Fejléc_formázás (mivel oszlopfejléceket fogunk formázni).
- Helyezze a kurzort a Rövidzáras billentyű mezőt, és nyomja le egyszerre a Shift + F billentyűkombinációt. Ezzel a makróhoz a Ctrl + Shift + F billentyűkombinációt rendeljük.
- Válassza ki, hogy a makrót ebben a munkafüzetben kívánja tárolni.
- A oldalon. Leírás , használja a következő szöveget, amely elmagyarázza, hogy mit csinál a makró: A szöveget félkövérré teszi, kitöltőszínt ad hozzá, és központosítja. .
- Kattintson a címre. OK a felvétel elindításához.
- Formázza az előre kiválasztott cellákat a kívánt módon. Ebben a példában a félkövér szövegformázást, a világoskék kitöltési színt és a középre igazítást használjuk.
Tipp: Ne jelölje ki a cellákat, miután elkezdte a makró rögzítését. Ez biztosítja, hogy az összes formázási alkalmazást a kiválasztás , nem pedig egy adott tartományt.
- Kattintson a címre. Felvétel leállítása vagy a Fejlesztő lap vagy a Állapot bár.
Ez az! A makró rögzítésre került. Most már bármelyik lapon kijelölhet egy tetszőleges cellatartományt, megnyomhatja a hozzárendelt gyorsbillentyűt ( Ctrl+Shift+F ), és az egyéni formázás azonnal alkalmazásra kerül a kijelölt cellákra.
Hogyan dolgozzon rögzített makrókkal az Excelben
Az Excel által a makrók számára biztosított összes fő beállítási lehetőség elérhető a Makró A párbeszédpanel megnyitásához kattintson a Makrók gombot a Fejlesztő lapot, vagy nyomja meg az Alt+ F8 billentyűkombinációt.
A megnyíló párbeszédpanelen megtekintheti az összes megnyitott munkafüzetben elérhető vagy egy adott munkafüzethez kapcsolódó makrók listáját, és a következő beállításokat használhatja:
- Fuss - végrehajtja a kiválasztott makrót.
- Lépj be - lehetővé teszi a makró hibakeresését és tesztelését a Visual Basic szerkesztőben.
- Szerkesztés - megnyitja a kiválasztott makrót a VBA-szerkesztőben, ahol megtekintheti és szerkesztheti a kódot.
- Törölje a címet. - véglegesen törli a kiválasztott makrót.
- Opciók - lehetővé teszi a makró tulajdonságainak módosítását, mint például a kapcsolódó Rövidítés kulcs és Leírás .
Makrók megtekintése az Excelben
Az Excel-makró kódja a Visual Basic szerkesztőben tekinthető meg és módosítható. A szerkesztő megnyitásához nyomja meg az Alt + F11 billentyűkombinációt, vagy kattintson a Visual Basic gombot a Fejlesztő tab.
Ha először látja a VB-szerkesztőt, kérjük, ne érezze magát elkeseredettnek vagy megfélemlítettnek. Nem fogunk a VBA nyelv szerkezetéről vagy szintaxisáról beszélni. Ez a rész csak néhány alapvető ismeretet ad arról, hogyan működnek az Excel-makrók, és mit is csinál egy makró felvétele.
A VBA-szerkesztőnek több ablaka van, de mi most a két fő ablakra koncentrálunk:
Project Explorer - megjeleníti az összes megnyitott munkafüzet és lapjaik listáját, valamint a modulokat, a felhasználói űrlapokat és az osztálymodulokat.
Kód ablak - itt tekintheti meg, szerkesztheti és írhatja a VBA-kódot a Project Explorerben megjelenített minden egyes objektumhoz.
Amikor felvettük a mintamakrót, a következő dolgok történtek a backendben:
- Egy új modul ( Moduel1 ) került beillesztésre.
- A makró VBA kódja a Kód ablakban íródott.
Egy adott modul kódjának megtekintéséhez kattintson duplán a modulra ( Modul1 a mi esetünkben) a Project Explorer ablakban. Normális esetben egy makró kódja a következő részekből áll:
Makró neve
A VBA-ban minden makró a következővel kezdődik Sub amelyet a makró neve követ, és a következővel végződik End Sub , ahol a "Sub" a következő rövidítése Alprogram (más néven Eljárás A mintamakrónk neve Header_Formatting() , így a kód ezzel a sorral kezdődik:
Sub Header_Formatting()Ha azt szeretné, hogy a makró átnevezése , egyszerűen törölje az aktuális nevet, és írjon be egy újat közvetlenül a Kód ablakba.
Megjegyzések
Az aposztróffal (') előtaggal ellátott és alapértelmezés szerint zöld színnel megjelenített sorok nem kerülnek végrehajtásra. Ezek tájékoztató jellegű megjegyzések. A megjegyzés sorok nyugodtan eltávolíthatók anélkül, hogy a kód működését befolyásolnák.
Általában egy rögzített makró 1-3 megjegyzés sorral rendelkezik: makró neve (kötelező); leírás és parancsikon (ha a rögzítés előtt megadta).
Végrehajtható kód
A megjegyzések után következik a kód, amely végrehajtja a rögzített műveleteket. Néha egy rögzített makró sok felesleges kódot tartalmazhat, ami még mindig hasznos lehet a VBA működésének megismeréséhez :)
Az alábbi képen látható, hogy mit csinálnak a makró kódjának egyes részei:
Felvett makró futtatása
A makró futtatásával azt mondja az Excelnek, hogy térjen vissza a rögzített VBA-kódhoz, és hajtsa végre pontosan ugyanazokat a lépéseket. A rögzített makró futtatásának több módja van az Excelben, és itt vannak a leggyorsabbak:
- Ha hozzárendelt egy billentyűkombináció a makróhoz, nyomja meg ezt a parancsikont.
- Nyomja meg az Alt + 8 billentyűkombinációt, vagy kattintson a Makrók gombot a Fejlesztő fülön. A Makró párbeszédpanelen válassza ki a kívánt makrót, majd kattintson a Fuss .
Lehetőség van arra is, hogy egy rögzített makrót saját gombra kattintva futtasson. Itt vannak a lépések egy ilyen gomb létrehozásához: Hogyan hozzunk létre makrógombot az Excelben.
Makrók mentése az Excelben
Akár makrót rögzített, akár kézzel írt VBA-kódot, a makró mentéséhez a munkafüzetet makróengedélyezettként (.xlms kiterjesztéssel) kell elmentenie. Íme, hogyan:
- A makrót tartalmazó munkafüzetben kattintson a Mentés gombot, vagy nyomja meg a Ctrl + S billentyűkombinációt.
- A Mentés másként párbeszédpanelen válassza a Excel makróval támogatott munkafüzet (*.xlsm) a Mentés másként legördülő lista, majd kattintson a Mentés :
Excel makrók: mit rögzítenek és mit nem
Amint az imént láthatta, elég könnyű makrót rögzíteni az Excelben. De ahhoz, hogy hatékony makrókat hozzon létre, meg kell értenie, mi történik a színfalak mögött.
Mit rögzítenek
Az Excel makrófelvevője elég sok mindent rögzít - szinte minden egérkattintást és billentyűleütést. Ezért alaposan át kell gondolnia lépéseit, hogy elkerülje a felesleges kódot, amely a makró váratlan viselkedését eredményezheti. Az alábbiakban néhány példát mutatunk arra, hogy mit rögzít az Excel:
- Cellák kijelölése egérrel vagy billentyűzettel. Csak a művelet előtti utolsó kijelölés kerül rögzítésre. Ha például kijelöli az A1:A10 tartományt, majd az A11-es cellára kattint, csak az A11-es cella kijelölése kerül rögzítésre.
- Cellák formázása, például kitöltés és betűszín, igazítás, szegélyek stb.
- Számformázás, például százalék, pénznem stb.
- Képletek és értékek szerkesztése. A módosítások az Enter megnyomása után rögzítésre kerülnek.
- Görgetés, Excel ablakok mozgatása, váltás más munkalapokra és munkafüzetekre.
- Munkalapok hozzáadása, elnevezése, áthelyezése és törlése.
- Munkafüzetek létrehozása, megnyitása és mentése.
- Más makrók futtatása.
Amit nem lehet rögzíteni
Annak ellenére, hogy az Excel számos különböző dolgot rögzíthet, bizonyos funkciók meghaladják a Makrófelvevő képességeit:
- Az Excel szalag és a gyorselérési eszköztár testreszabása.
- Az Excel párbeszédpaneleken belüli műveletek, például Feltételes formázás vagy Keresés és csere (csak az eredmény kerül rögzítésre).
- Más programokkal való kölcsönhatások. Például nem rögzíthet másolást/beillesztést egy Excel munkafüzetből egy Word-dokumentumba.
- Bármi, ami a VBA-szerkesztőt érinti. Ez jelenti a legjelentősebb korlátozást - sok olyan dolog, amit programozási szinten lehet elvégezni, nem rögzíthető:
- Egyéni funkciók létrehozása
- Egyéni párbeszédpanelek megjelenítése
- Az olyan hurkok készítése, mint A következő , Minden egyes , Do While stb.
- A feltételek kiértékelése. A VBA-ban a VBA-ban a IF Then Else utasítással tesztelhet egy feltételt, és futtathat egy kódot, ha a feltétel igaz, vagy egy másik kódot, ha a feltétel hamis.
- Kód végrehajtása események alapján. A VBA segítségével számos eseményt használhat az adott eseményhez kapcsolódó kód futtatására (például egy munkafüzet megnyitása, egy munkalap újraszámítása, a kijelölés módosítása stb.).
- Érvek használata. Amikor a VBA-szerkesztőben makrót ír, bemeneti argumentumokat adhat meg a makrónak egy bizonyos feladat elvégzéséhez. Egy rögzített makrónak nem lehetnek argumentumai, mivel az független, és nem kapcsolódik más makrókhoz.
- Például, ha olyan makrót rögzítünk, amely bizonyos cellákat másol, mondjuk a Összesen sorban, az Excel csak a másolt cellák címét rögzíti. A VBA segítségével kódolhatja a logikát, azaz másolja az értékeket a Összesen sor.
Bár a fenti korlátozások sok korlátot szabnak a felvett makróknak, mégis jó kiindulópontot jelentenek. Még ha fogalmunk sincs a VBA nyelvről, akkor is gyorsan felvehetünk egy makrót, majd elemezhetjük a kódját.
Hasznos tippek a makrók Excelben történő rögzítéséhez
Az alábbiakban talál néhány tippet és megjegyzést, amelyekkel sok időt és idegeskedést spórolhat meg, így a tanulási görbe simábbá és a makrók hatékonyabbá válhatnak.
Relatív hivatkozások használata makrófelvételhez
Alapértelmezés szerint az Excel a abszolút hivatkozás Ez azt jelenti, hogy a VBA-kód mindig pontosan ugyanazokra a cellákra fog hivatkozni, amelyeket kiválasztott, függetlenül attól, hogy a makró futtatásakor a munkalap melyik részén tartózkodik.
Az alapértelmezett viselkedés azonban megváltoztatható a következőre relatív hivatkozás Ebben az esetben a VBA nem a cellák címét kódolja be, hanem az aktív (aktuálisan kiválasztott) cellához viszonyítva dolgozik.
Ha relatív hivatkozással szeretne makrót rögzíteni, kattintson a Használja a címet. Relatív hivatkozások gombot a Fejlesztő Az abszolút hivatkozáshoz való visszatéréshez kattintson újra a gombra a kikapcsoláshoz.
Ha például egy táblázatot az alapértelmezett abszolút hivatkozással állít be, a makró mindig ugyanazon a helyen fogja újra létrehozni a táblázatot (ebben az esetben, Fejléc A1-ben, Tétel1 A2-ben, Item2 A3-ban).
Sub Absolute_Referencing() Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Header" Range( "A2" ). Select ActiveCell.FormulaR1C1 = "Item1" Range( "A3" ). Select ActiveCell.FormulaR1C1 = "Item2" End Sub
Ha ugyanazt a makrót relatív hivatkozással rögzíti, a táblázat ott jön létre, ahová a makró futtatása előtt a kurzort helyezte ( Fejléc az aktív cellában, Tétel1 az alábbi cellában, és így tovább).
Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ). Select End SubMegjegyzések:
- Ha relatív hivatkozásokat használ, győződjön meg róla, hogy a makró rögzítése előtt kijelölte a kiindulási cellát.
- A relatív hivatkozás nem minden esetben működik. Egyes Excel-funkciók, például egy tartomány táblázatba történő átalakítása abszolút hivatkozásokat igényel.
Tartományok kiválasztása billentyűparancsok használatával
Amikor az egérrel vagy a nyílbillentyűkkel kijelöl egy cellát vagy egy cellatartományt, az Excel kiírja a cellák címeit. Következésképpen, amikor makrót futtat, a rögzített műveletek pontosan ugyanazokon a cellákon fognak végrehajtódni. Ha nem ezt szeretné, használja a gyorsbillentyűket a cellák és tartományok kijelölésére.
Példaként rögzítsünk egy makrót, amely az alábbi táblázatban szereplő dátumokhoz egy meghatározott formátumot (d-mmm-yy) állít be:
Ehhez a következő műveleteket rögzíti: a Ctrl + 1 billentyűkombinációval nyissa meg a Cellák formázása párbeszédpanel> Dátum> formátum kiválasztása> OK. Ha a rögzítés során a tartományt az egérrel vagy a nyílbillentyűkkel választja ki, az Excel a következő VBA-kódot fogja előállítani:
Sub Date_Format() Range( "A2:B4" ). Select Selection.NumberFormat = "d-mmm-yy" End SubA fenti makró futtatása minden alkalommal az A2:B4 tartományt választja ki. Ha további sorokat ad a táblázathoz, azokat a makró nem fogja feldolgozni.
Most pedig nézzük meg, mi történik, ha a táblázatot parancsikon segítségével választjuk ki.
Helyezze a kurzort a céltartomány bal felső cellájába (ebben a példában A2), indítsa el a felvételt, és nyomja meg a Ctrl + Shift + End billentyűkombinációt. Ennek eredményeképpen a kód első sora így fog kinézni:
Range(Selection, ActiveCell.SpecialCells(xlLastCell)). SelectEz a kód az összes cellát kiválasztja az aktív cellától az utoljára használt celláig, ami azt jelenti, hogy minden új adat automatikusan bekerül a kijelölésbe.
Alternatívaként használhatja a Ctrl + Shift + nyilak kombinációt is:
- Ctrl + Shift + Jobbra nyíl az összes használt cella kijelöléséhez jobbra, majd a következővel
- Ctrl + Shift + Lefelé nyíl az összes használt cella kijelöléséhez lefelé.
Ez egy helyett két kódsort generál, de az eredmény ugyanaz lesz - az aktív cellától jobbra és lejjebb lévő összes adatot tartalmazó cella ki lesz jelölve:
Range(Selection, Selection. End (xlToRight)). Select Range(Selection, Selection. End (xlDown)). SelectMakró felvétele a kiválasztáshoz, nem pedig bizonyos cellákhoz
A fenti módszer (azaz az összes használt cella kiválasztása az aktív cellával kezdődően) nagyszerűen működik az egész táblázaton végzett műveletek elvégzésére. Bizonyos helyzetekben azonban előfordulhat, hogy a makrónak nem az egész táblázatot, hanem egy bizonyos tartományt kell feldolgoznia.
Ehhez a VBA biztosítja a Kiválasztás objektum, amely az aktuálisan kijelölt cellára (cellákra) utal. A legtöbb dolog, amit tartományokkal lehet csinálni, a kijelöléssel is elvégezhető. Milyen előnye van ennek? Sok esetben egyáltalán nem kell kijelölni semmit a felvétel során - csak írjon makrót az aktív cellára. És aztán jelölje ki a kívánt tartományt, futtassa a makrót, és az manipulálja a teljes kijelölést.
Ez az egysoros makró például tetszőleges számú kiválasztott cellát formázhat százalékos formában:
Sub Percent_Format() Selection.NumberFormat = "0.00%" End SubGondosan tervezze meg, mit rögzít
A Microsoft Excel Macro Recorder szinte minden tevékenységét rögzíti, beleértve az elkövetett és kijavított hibákat is. Ha például a Ctrl + Z billentyűkombinációt nyomja le, hogy visszavonjon valamit, az is rögzítésre kerül. Végül előfordulhat, hogy sok felesleges kódot kap. Ennek elkerülése érdekében vagy szerkessze a kódot a VB-szerkesztőben, vagy állítsa le a rögzítést, törölje a hibás makrót, és kezdje újra a rögzítést.
Biztonsági mentés vagy a munkafüzet mentése makró futtatása előtt
Az Excel-makrók eredményét nem lehet visszacsinálni. Ezért a makró első futtatása előtt érdemes létrehozni egy másolatot a munkafüzetről, vagy legalábbis elmenteni az aktuális munkát, hogy megelőzzük a váratlan változásokat. Ha a makró valamit rosszul csinál, egyszerűen zárja be a munkafüzetet mentés nélkül.
Tartsa rövidre a rögzített makrókat
Ha különböző feladatok sorozatát automatizáljuk, megkísérthet bennünket, hogy mindet egyetlen makróban rögzítsük. Két fő oka van annak, hogy ezt ne tegyük. Először is, nehéz egy hosszú makrót hiba nélkül, zökkenőmentesen rögzíteni. Másodszor, a nagy makrókat nehéz megérteni, tesztelni és hibakeresést végezni. Ezért jó ötlet egy nagy makrót több részre osztani. Például egy összefoglaló táblázat készítésekor.több forrásból, akkor egy makróval importálhatja az információkat, egy másikkal összevonhatja az adatokat, egy harmadikkal pedig formázhatja a táblázatot.
Remélem, hogy ez a bemutató adott némi betekintést abba, hogyan lehet makrót rögzíteni az Excelben. Mindenesetre köszönöm, hogy elolvastad, és remélem, hogy jövő héten találkozunk a blogon!