Makró rögzítése Excelben - lépésről lépésre

Még ha teljesen kezdő is vagy az Excel VBA világában, könnyen rögzíthetsz egy makrót, és automatizálhatod a munkáid egy részét.

Ebben a részletes útmutatóban kitérek mindenre, amit tudnia kell a makrók Excelben történő rögzítésének és használatának megkezdéséhez.

Ha érdekli a VBA egyszerű tanulása, nézze meg az enyémet Online Excel VBA képzés.

Mi az a makró?

Ha kezdő vagy a VBA -ban, először hadd mondjam el, mi az a makró - végül is ezt a kifejezést fogom használni az egész oktatóanyagban.

A makró a VBA -ban (Visual Basic for Applications) írt kód, amely lehetővé teszi egy kódrészlet futtatását minden végrehajtáskor.

Gyakran előfordul, hogy az emberek (köztük én is) makróként hivatkoznak a VBA -kódra - függetlenül attól, hogy makró -rögzítő használatával jött létre, vagy manuálisan írták.

Amikor rögzít egy makrót, az Excel alaposan figyeli a lépéseket, és megjegyzi az általa értett nyelven - ami VBA.

És mivel az Excel nagyon jó jegyzetelő, nagyon részletes kódot hoz létre (amint ezt az oktatóanyagban később látni fogjuk).

Most, amikor leállítja a felvételt, elmenti a makrót és futtatja, az Excel egyszerűen visszatér az általa létrehozott VBA -kódhoz, és pontosan ugyanazokat a lépéseket követi.

Ez azt jelenti, hogy még akkor is, ha semmit sem tud a VBA -ról, bizonyos feladatokat automatizálhat, ha hagyja, hogy az Excel egyszer rögzítse a lépéseket, majd később újra felhasználja azokat.

Most merüljünk el, és nézzük meg, hogyan rögzíthetünk makrót Excelben.

A Fejlesztő fül megjelenítése a szalagon

A makró rögzítésének első lépése a Fejlesztő fül megjelenítése a szalagon.

Ha már látja a fejlesztői lapot a szalagon, ugorjon a következő szakaszra, különben kövesse az alábbi lépéseket:

  • Kattintson a jobb gombbal a szalag bármelyik meglévő lapjára, majd kattintson a „Szalag testreszabása” lehetőségre. Megnyílik az Excel beállításai párbeszédpanel.
  • Az Excel beállításai párbeszédpanelen a Szalag testreszabása beállításokkal rendelkezik. A jobb oldalon, a Főlapok panelen jelölje be a Fejlesztői lehetőséget.
  • Kattintson az OK gombra.

A fenti lépések lehetővé teszik a Fejlesztői lap elérését a szalagterületen.

Makró rögzítése Excelben

Most, hogy minden a helyünkön van, tanuljuk meg, hogyan rögzíthetünk makrót Excelben.

Rögzítsünk egy nagyon egyszerű makrót - azt, amely kijelöl egy cellát, és beírja az „Excel” szöveget. A makró rögzítésekor az „Excel” szöveget használom, de nyugodtan írja be nevét vagy bármely más tetszőleges szöveget.

A makró rögzítésének lépései a következők:

  1. Kattintson a Fejlesztő fülre.
  2. A Kód csoportban kattintson a Makró gombra. Ezzel megnyílik a „Makró rögzítése” párbeszédpanel.
  3. A Makró rögzítése párbeszédpanelen adja meg a makró nevét. A nevet használom EnterText. A makró elnevezésekor bizonyos elnevezési feltételeket kell követnie. Például nem használhat szóközt a kettő között. Általában inkább a makróneveimet tartom egyetlen szóként, különböző részekkel nagybetűs első ábécével. Az aláhúzást két szó elválasztására is használhatja - például Enter_Text.
  4. (Opcionális lépés) Ha szeretne, hozzárendelhet egy billentyűparancsot. Ebben az esetben a Control + Shift + N billentyűkombinációt fogjuk használni. Ne feledje, hogy az itt megadott parancsikon felülbírálja a munkafüzet minden meglévő parancsikonját. Ha például a Control + S billentyűparancsot rendeli hozzá, akkor ezt nem tudja használni a munkafüzet mentéséhez (ehelyett minden alkalommal, amikor használja, végrehajtja a makrót).
  5. A „Makró tárolása itt” opcióban győződjön meg arról, hogy a „Ez a munkafüzet” van kiválasztva. Ez a lépés biztosítja, hogy a makró a munkafüzet része. Ott lesz, amikor elmenti és újra megnyitja, vagy akkor is, ha megosztja valakivel.
  6. (Nem kötelező lépés) Írjon be egy leírást. Általában nem csinálom ezt, de ha rendkívül szervezett vagy, akkor érdemes hozzáfűzni a makró lényegét.
  7. Kattintson az OK gombra. Amint rákattint az OK gombra, elkezdi rögzíteni a műveleteket az Excelben. A Fejlesztő lapon látható a „Felvétel leállítása” gomb, amely azt jelzi, hogy a makró rögzítése folyamatban van.
  8. Válassza ki az A2 cellát.
  9. Írja be a szöveget Excel (vagy használhatja a nevét).
  10. Nyomja meg az Enter billentyűt. Ezzel kiválasztja az A3 cellát.
  11. Kattintson a Felvétel leállítása gombra a Fejlesztő lapon.

Gratulálunk!

Most rögzítette az első makrót az Excelben. Már nem vagy makrószűz.

Noha a makró nem tesz semmi hasznosat, célját szolgálja annak elmagyarázásában, hogyan működik a makró rögzítő az Excelben.

Most menjünk előre, és teszteljük ezt a makrót.

A makró teszteléséhez kövesse az alábbi lépéseket:

  1. Törölje a szöveget az A2 cellából. Ezzel tesztelhető, hogy a makró beszúrja -e a szöveget az A2 cellába vagy sem.
  2. Válasszon bármelyik cellát - az A2 kivételével. Ez annak tesztelésére szolgál, hogy a makró kiválasztja -e az A2 cellát vagy sem.
  3. Kattintson a Fejlesztő fülre.
  4. A Kód csoportban kattintson a Makrók gombra.
  5. A Makró párbeszédpanelen kattintson a Név - EnterText makróra.
  6. Kattintson a Futtatás gombra.

Észre fogja venni, hogy amint rákattint a Futtatás gombra, az „Excel” szöveg beilleszkedik az A2 cellába, és az A3 cella kijelölésre kerül.

Most mindez a másodperc töredéke alatt történhet meg, de a valóságban a makró - csakúgy, mint egy engedelmes manó - pontosan azokat a lépéseket követte, amelyeket a makró rögzítése közben mutatott.

Tehát a makró először kiválasztja az A2 cellát, majd beírja a szöveget Excel benne, majd kiválasztja az A3 cellát.

Megjegyzés: A makrót a billentyűparancs segítségével is futtathatja Control + Shift + N (tartsa lenyomva a Control és a Shift billentyűket, majd nyomja meg az N gombot). Ugyanaz a billentyűparancs, amelyet a makróhoz rendeltünk felvételkor.

Mit csinál a makró rögzítése a háttérben

Most menjünk az Excel háttérprogramjához - a VB szerkesztőhöz - és nézzük meg, hogy valójában mit tesz a makró rögzítése.

Az alábbi lépésekkel megnyithatja a VB szerkesztőt Excelben:

  1. Kattintson a Fejlesztő fülre.
  2. A Kód csoportban kattintson a Visual Basic gombra.

Vagy használhatja a billentyűparancsot - ALT + F11 (tartsa lenyomva az ALT billentyűt, és nyomja meg az F11 billentyűt), a fenti két lépés helyett. Ez a parancsikon megnyitja ugyanazt a VB szerkesztőt.

Ha most látja először a VB szerkesztőt, ne essen túlságosan.

Hadd ismerjem meg gyorsan a VB Editor anatómiáját.

  • Menüsor: Itt van a VB Editor összes lehetősége. Tekintsük ezt a VBA szalagjának. Olyan parancsokat tartalmaz, amelyeket használhat a VB Editor használatával.
  • Eszköztár - Ez olyan, mint a VB szerkesztő Gyorselérési eszköztára. Van néhány hasznos lehetőség, és további lehetőségeket is hozzáadhat hozzá. Előnye, hogy egy lehetőség az eszköztáron csak egy kattintásnyira van.
  • Project Explorer ablak - Itt sorolja fel az Excel az összes munkafüzetet és az egyes munkafüzetek összes objektumát. Például, ha van egy munkafüzetünk 3 munkalappal, akkor az megjelenik a Project Explorerben. Vannak itt további objektumok, például modulok, felhasználói űrlapok és osztálymodulok.
  • Kódablak - Itt rögzítik vagy írják a VBA kódot. A Project Explorerben felsorolt ​​összes objektumhoz tartozik egy kódablak - például munkalapok, munkafüzetek, modulok stb. Ebben az oktatóanyagban később látni fogjuk, hogy a rögzített makró a modul kódablakába kerül.
  • Tulajdonságok ablak - Ebben az ablakban láthatja az egyes objektumok tulajdonságait. Gyakran használom ezt az ablakot objektumok elnevezésére vagy a rejtett tulajdonságok megváltoztatására. Előfordulhat, hogy nem látja ezt az ablakot a VB szerkesztő megnyitásakor. Ennek megjelenítéséhez kattintson a Nézet fülre, és válassza a Tulajdonságok ablakot.
  • Azonnali ablak - Gyakran a közvetlen ablakot használom kódírás közben. Ez akkor hasznos, ha tesztelni szeretne néhány állítást vagy hibakeresés közben. Előfordulhat, hogy alapértelmezés szerint nem látható, és megjelenítheti a Nézet fülre kattintva, és az Azonnali ablak lehetőséget választva.

Amikor rögzítettük a makrót - EnterText, a következő dolgok történtek a VB szerkesztőben:

  • Új modul került behelyezésre.
  • Egy makrót rögzítettünk az általunk megadott névvel - EnterText
  • A kódot a modul kódablakába írták.

Tehát ha duplán kattint a modulra (ebben az esetben az 1. modulra), megjelenik egy kódablak, amint az alább látható.

Itt van a makró rögzítő által megadott kód:

Sub EnterText () '' EnterText Macro '' Billentyűparancs: Ctrl+Shift+N 'tartomány ("A2"). Válassza az ActiveCell.FormulaR1C1 = "Excel" tartomány ("A3") lehetőséget.

A VBA -ban minden olyan sor, amely a (aposztróf jel) nem hajtódik végre. Ez egy megjegyzés, amely csak tájékoztató jellegű. Ha eltávolítja a kód első öt sorát, a makró továbbra is a várt módon fog működni.

Most hadd mutassam be gyorsan, mit tesz az egyes kódsorok:

A kód Sub -val kezdődik, majd a makró neve és az üres zárójel. A Sub a Subroutine rövidítése. A VBA minden alprogramja (más néven eljárás) a Sub -val kezdődik, és a Sub -al fejeződik be.

  • Tartomány („A2”) - Ez a sor választja ki az A2 cellát.
  • ActiveCell.FormulaR1C1 = “Excel” - ez a sor írja be az Excel szöveget az aktív cellába. Mivel első lépésként az A2 -t választottuk, ez lesz az aktív sejtünk.
  • Tartomány („A3”) - Ezzel kiválasztja az A3 cellát. Ez akkor történik, amikor a szöveg beírása után megnyomjuk az Enter billentyűt, amelynek eredményeként az A3 cella volt kiválasztva.

Remélem, mostanra van némi alapvető ismerete a makró Excelben történő rögzítéséről.

Ne feledje, hogy a makró rögzítő által írt kód egyáltalán nem hatékony kód.

A makró rögzítő néha sok szöszöt ad a kódhoz, ami időnként nem szükséges. De ez nem jelenti azt, hogy nem hasznos. A VBA -t tanuló személy számára a makró rögzítő nagyszerű módja annak, hogy elemezze a dolgok működését a VBA -ban.

Abszolút vs relatív makró felvétel

Ön már ismeri az Excel abszolút és relatív hivatkozásait … igaz?

Ha nem - először olvassa el ezt az oktatóanyagot a referenciákról.

Olvasd el? Menjünk tovább.

Ebben a részben később látni fogjuk, hogyan lehet makrókat rögzíteni abszolút és relatív hivatkozásokban. De előtte hadd foglaljam össze gyorsan a különbséget az abszolút és a relatív referencia között a VBA -ban (ha lusta lettél, és nem olvastad el a néhány sorral ezelőtt megadott linket):

Ha abszolút referenciaopciót használ a makró rögzítéséhez, a VBA kód mindig ugyanazokra a cellákra hivatkozik, amelyeket használt. Például, ha az A2 cellát választja, írja be az Excel szöveget, és nyomja meg az Enter billentyűt minden alkalommal - függetlenül attól, hogy hol van a munkalapon, és függetlenül attól, hogy melyik cella van kiválasztva, a kód először az A2 cellát választja ki, írja be az Excel szöveget, és majd lépjen az A3 cellába.

Ha relatív hivatkozási beállítást használ a makró rögzítéséhez, a VBA nem kódolja keményen a cellahivatkozásokat. Inkább a mozgásra összpontosítana az aktív sejthez képest. Tegyük fel például, hogy már ki van választva az A1 cella, és a relatív referencia módban elkezdi rögzíteni a makrót.

Most válassza ki az A2 cellát, írja be az Excel szöveget, és nyomja meg az Enter billentyűt. Most, amikor ezt a makrót futtatja, nem megy vissza az A2 cellába, hanem az aktív cellához képest mozog. Például, ha a K3 cella van kiválasztva, akkor a K4 -be lép, írja be az Excel szöveget, majd végül válassza ki a K5 cellát.

Most hadd mondjam el, hogyan rögzíthet makrót relatív referencia módban:

  1. Válassza ki az A1 cellát.
  2. Kattintson a Fejlesztő fülre.
  3. A Kód csoportban kattintson a „Relatív hivatkozások használata” gombra. Zöldre vált, jelezve, hogy be van kapcsolva.
  4. Kattintson a Makró rögzítése gombra.
  5. A Makró rögzítése párbeszédpanelen adja meg a makró nevét. A nevet használom EnterTextRelRef.
  6. A Store makró itt opcióban győződjön meg arról, hogy az „Ez a munkafüzet” van kiválasztva.
  7. Kattintson az OK gombra.
  8. Válassza ki az A2 cellát.
  9. Írja be a szöveget Excel (vagy megadhatja a nevét).
  10. Nyomja meg az Enter billentyűt. Ezzel a kurzor az A3 cellába kerül.
  11. Kattintson a Felvétel leállítása gombra a Fejlesztő lapon.

Ez rögzíti a makrót a relatív referencia módban.

Most tedd ezt.

  1. Válasszon ki egy cellát (az A1 kivételével).
  2. Kattintson a Fejlesztő fülre.
  3. A Kód csoportban kattintson a Makrók gombra.
  4. A Makró párbeszédpanelen kattintson a makró nevére - EnterTextRelRef.
  5. Kattintson a Futtatás gombra.

Mi történik? A kurzor visszatért az A3 cellába.

Nem lenne - mert a makrót relatív referencia módban rögzítette. Tehát a kurzor az aktív cellához képest mozogna. Például, ha ezt a K3 cella kiválasztásakor teszi, akkor az Excel szövege a K4 cella lesz, és végül a K5 cellát választja ki.

Itt található a kód, amelyet a háttérben rögzítenek (VB Editor modul ablak):

Sub EnterTextRelRef () '' EnterTextRelRef Macro '' ActiveCell.Offset (1, 0) .Range ("A1"). Válassza az ActiveCell.FormulaR1C1 = "Excel" ActiveCell.Offset (1, 0). Range ("A1") lehetőséget. Válassza az Alvégi vége lehetőséget

Vegye figyelembe, hogy ez a teljes kód sehol nem utal a K3 vagy K4 cellákra. Ehelyett az Activecell segítségével hivatkozik a kiválasztott cellára, és eltolással mozog az aktív cellához képest.

Ne aggódjon a kód Tartomány („A1”) része miatt. A makró -rögzítő hozzáteszi azokat a szükségtelen kódokat, amelyeknek nincs célja, és el lehet távolítani. A kód tökéletesen működne nélküle.

A „Relatív referencia használata” gomb a Fejlesztő lapon egy váltógomb. Kikapcsolhatja (és visszakapcsolhat abszolút referenciára), ha rákattint.

Amit egy makró felvevő nem tud megtenni

A makrórögzítő kiválóan követi az Excelben, és rögzíti a pontos lépéseket, de előfordulhat, hogy nem sikerül, ha többre van szüksége.

  • Nem hajthat végre kódot az objektum kiválasztása nélkül. Ha azt szeretné, hogy a makró felvevő a következő munkalapra lépjen, és az A oszlop összes kitöltött celláját kiemelje, anélkül, hogy kilépne az aktuális munkalapból, akkor ezt nem tudja megtenni. Ez azért van, mert ha megkérem Önt erre, akkor még Ön sem lesz képes erre (anélkül, hogy elhagyná az aktuális lapot). És ha nem tudja megtenni saját maga, hogyan rögzíti a makró rögzítő a műveleteit. Ilyen esetekben manuálisan kell létrehozni/szerkeszteni a kódot.
  • Nem hozhat létre egyéni funkciót makró rögzítővel. A VBA segítségével egyéni funkciókat hozhat létre, amelyeket a munkalapon szokásos funkciókként használhat. Ezt a kód kézi beírásával hozhatja létre.
  • Nem futtathat kódokat az események alapján: A VBA -ban számos eseményt használhat - például megnyithat egy munkafüzetet, hozzáadhat egy munkalapot, duplán kattinthat egy cellára stb. Az adott eseményhez társított kód futtatásához. Ehhez makró felvevőt használhat.
  • Nem hozhat létre hurkot makró rögzítővel. Amikor manuálisan írja be a kódot, kihasználhatja a hurkok erejét a VBA -ban (például For Next, For Every Next, Do Do, Do till). Ezt azonban nem teheti meg makró rögzítésekor.
  • Nem tudja elemezni a feltételeket: A makró rögzítő segítségével ellenőrizheti a kódon belüli feltételeket. Ha VBA -kódot ír manuálisan, akkor az IF Then Else utasításokkal elemezheti a feltételt, és futtathat egy kódot, ha igaz (vagy egy másik kódot, ha hamis).
  • Nem adhat át érveket egy makró eljárásban: Amikor makrót rögzít, annak soha nem lesz érve. Egy alprogram beviteli argumentumokat vehet fel, amelyeket a makrón belül lehet használni egy feladat végrehajtásához. Makró rögzítése közben ezt nem lehet megtenni, mivel a rögzített makrók függetlenek, és nem kapcsolódnak más meglévő makrókhoz.

Makró-engedélyezett fájlkiterjesztések

Amikor makrót rögzít, vagy manuálisan írja be a VBA-kódot az Excelben, a makrót engedélyező fájlkiterjesztéssel (.xlsm) kell mentenie a fájlt.

Az Excel 2007 előtt egyetlen fájlformátum volt elegendő - .xls.

De 2007 -től kezdődően a .xlsx szabványos fájlkiterjesztésként került bevezetésre. Az .xlsx néven mentett fájlok nem tartalmazhatnak makrót. Tehát, ha van egy .xlsx kiterjesztésű fájlja, és rögzít/ír egy makrót, és elmenti, akkor figyelmezteti, hogy mentse el makró-engedélyezett formátumban, és megjelenik egy párbeszédpanel (az alábbiak szerint):

Ha a Nem lehetőséget választja, az Excel lehetővé teszi makró-engedélyezett formátumban történő mentését. De ha az Igen gombra kattint, az Excel automatikusan eltávolítja az összes kódot a munkafüzetből, és elmenti .xlsx munkafüzetként.

Tehát ha van makró a munkafüzetben, akkor azt el kell mentenie .xlsm formátumban a makró megtartásához.

A makró futtatásának különböző módjai Excelben

Eddig csak egy módot láttunk a makró futtatására Excelben - ez a Makró párbeszédpanel.

A makrók futtatásának azonban számos módja van.

  1. Makró futtatása a szalagról (Fejlesztő fül)
  2. Billentyűparancs használata (amelyet hozzá kell rendelnie)
  3. Rendelje hozzá a makrót egy alakhoz
  4. Rendelje hozzá a makrót egy gombhoz
  5. Futtasson makrót a VB szerkesztőből

Következtetés - Rögzítsen makrót elakadáskor

Már említettem, hogy a makró felvevő hasznos eszköz bárki számára, aki VBA -val dolgozik Excelben.

Amikor néhányszor használja a makró felvevőt, észre fogja venni, hogy sok felesleges kódot köp ki. Ennek ellenére továbbra is hasznos, és ad néhány ötletet a kezdéshez. Például, ha megkérem Önt, hogy szűrjön egy oszlopot a cellákból VBA segítségével, és fogalma sincs, mi a szintaxis, gyorsan rögzíthet egy makrót, és megnézheti a kódot.

A makró rögzítő nélkülözhetetlen eszköz, és még az évek alatt végzett VBA kódolási tapasztalatom ellenére is gyakran fordulok segítségért a makró rögzítőhöz.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave