Excel VBA-példák: Bevezető eseménypéldák

Ha az Excel VBA-t próbálja jól elsajátítani , valószínűleg hasznára válik néhány példa, amellyel fejlesztheti ezt a vizuális alapképességet. Itt talál néhány Excel VBA-példát, hogy jobban megismerje ezt az eseménykezelési üzletet.

Excel VBA példa: A munkafüzet megnyitása

Az egyik leggyakrabban használt Excel VBA esemény a Workbook Open esemény. Tegyük fel, hogy van egy munkafüzete, amelyet minden nap használ. Ebben a példában a Workbook_Open eljárás a munkafüzet minden megnyitásakor végrehajtásra kerül. Az eljárás a hét napját ellenőrzi; ha péntek van, a kód emlékeztető üzenetet jelenít meg.

Az Excel VBA-eljárásának létrehozásához, amely a Munkafüzet megnyitása esemény bekövetkezésekor lefut, kövesse az alábbi lépéseket:

Nyissa meg az Excel munkafüzetet.
Bármely Excel munkafüzet megteszi.

Nyomja meg az Alt+F11 billentyűket a VBE aktiválásához.

Keresse meg a munkafüzetet a Projekt ablakban.

Ha szükséges, kattintson duplán a projekt nevére az elemek megjelenítéséhez.

Kattintson duplán a ThisWorkbook elemre.
A VBE egy üres Code ablakot jelenít meg a ThisWorkbook objektumhoz.

A Kód ablakban válassza ki a Munkafüzet elemet az Objektum (balra) legördülő listából.
A VBE beírja a Workbook_Open eljárás kezdő és záró utasításait.

Adja meg a következő utasításokat, így a teljes esemény-eljárás így néz ki:

Privát almunkafüzet_Open()
  Dim Msg As String
  Ha hétköznap (most) = 6 Akkor
    Msg = "Ma péntek van. Ne felejtsd el "
    Msg = Üzenet és "küldje be a TPS-jelentést!"
    MsgBox Msg
  Vége Ha
Vége Sub

A kód ablaknak így kell kinéznie.

Excel VBA-példák: Bevezető eseménypéldák

Ez az eseménykezelő eljárás a munkafüzet megnyitásakor kerül végrehajtásra.

A Workbook_Open automatikusan végrehajtódik a munkafüzet megnyitásakor. A VBA WeekDay funkcióját használja a hét napjának meghatározásához. Ha péntek (6. nap) van, egy üzenetdoboz emlékezteti a felhasználót a jelentés benyújtására. Ha nem péntek, semmi sem történik.

Ha ma nem péntek van, akkor nehéz dolga lesz ennek az eljárásnak a tesztelése. Csak módosíthatja a 6-ot, hogy megfeleljen a mai nap tényleges számának.

És természetesen ezt az eljárást tetszés szerint módosíthatja. Például a következő verzió a munkafüzet minden megnyitásakor üzenetet jelenít meg. Ez egy idő után bosszantó lesz.

A Workbook_Open eljárás szinte bármire képes. Ezeket az eseménykezelőket gyakran használják a következőkre:

  • Üdvözlő üzenetek megjelenítése (például Frank menő munkafüzetében)
  • Más munkafüzetek megnyitása
  • Egy adott munkalap aktiválása a munkafüzetben
  • Egyéni helyi menük beállítása

Íme egy utolsó példa Excel VBA-ban egy Workbook_Open eljárásra, amely a GetSetting és a SaveSetting függvényeket használja annak nyomon követésére, hogy hányszor nyitották meg a munkafüzetet. A SaveSetting függvény értéket ír a Windows rendszerleíró adatbázisába, a GetSetting függvény pedig lekéri ezt az értéket (a részletekért lásd a Súgót). A következő Excel VBA-példa lekéri a számot a beállításjegyzékből, növeli, majd visszamenti a beállításjegyzékbe. Azt is közli a felhasználóval, hogy a munkafüzet hányszor nyitotta meg a Cnt értéket.

Privát almunkafüzet_Open()
  Dim Cnt As Long
  Cnt = GetSetting ("Saját alkalmazás", "Beállítások", "Megnyitás", 0)
  Cnt = Cnt + 1
  SaveSetting "MyApp", "Settings", "Open", Cnt
  MsgBox "Ezt a munkafüzetet " & Cnt & " alkalommal nyitották meg."
Vége Sub

Excel VBA-példák: Bevezető eseménypéldák

A Workbook_Open eseménykezelő használata annak nyomon követésére, hogy hányszor nyitottak meg egy munkafüzetet.

Excel VBA példa: A BeforeClose esemény egy munkafüzethez

Íme egy példa az Excel VBA Workbook_BeforeClose eseménykezelő eljárására, amely közvetlenül a munkafüzet bezárása előtt automatikusan végrehajtásra kerül. Ez az eljárás a ThisWorkbook objektum Code ablakában található:

Privát almunkafüzet_BeforeClose (Mégse logikai értékként)
  Dim Msg As String
  Dim Ans As Long
  Dim FName As String
  Msg = "Szeretne biztonsági másolatot készíteni erről a fájlról?"
  Ans = MsgBox(Msg, vbYesNo)
  Ha Ans = vbIgen Akkor
    FName = "F:\BACKUP\" & ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs FName
  Vége Ha
Vége Sub

Ez a rutin egy üzenetmező segítségével megkérdezi a felhasználót, hogy szeretne-e biztonsági másolatot készíteni a munkafüzetről. Ha a válasz igen, a kód a SaveCopyAs metódus segítségével menti a fájl biztonsági másolatát az F meghajtóra. Ha ezt az eljárást saját használatra adaptálja, meg kell változtatnia a meghajtót és az elérési utat.

Az Excel-programozók gyakran egy Workbook_BeforeClose eljárást használnak, hogy kitakarítsák magukat. Ha például egy Workbook_Open eljárást használ bizonyos beállítások módosítására egy munkafüzet megnyitásakor (például elrejti az állapotsort), akkor csak a munkafüzet bezárásakor célszerű visszaállítani a beállításokat az eredeti állapotukba. Ezt az elektronikus házvezetést a Workbook_BeforeClose eljárással végezheti el.

A Workbook_BeforeClose esemény használatakor tartsa szem előtt a következőket: Ha bezárja az Excelt, és bármely megnyitott fájl módosult a legutóbbi mentés óta, az Excel a szokásos „Szeretné menteni a módosításokat” üzenetablakát megjeleníteni. A Mégse gombra kattintva a teljes zárási folyamat megszakad. De a Workbook_BeforeClose esemény amúgy is végrehajtásra kerül.

Excel VBA példa: A BeforeSave esemény egy munkafüzethez

A BeforeSave esemény, ahogy a neve is sugallja, a munkafüzet mentése előtt aktiválódik. Ez az esemény akkor következik be, amikor a Fájl → Mentés vagy a Fájl → Mentés másként lehetőséget választja.

A következő eljárást, amely bekerül a kód ablak egy ThisWorkbook tárgy bemutatja a BeforeSave esemény. A rutin a munkafüzet minden mentésekor frissíti a cellában lévő értéket (az 1. munkalap A1 cellája). Más szavakkal, az A1 cella számlálóként szolgál, hogy nyomon kövesse a fájl mentésének számát.

Privát almunkafüzet_BeforeSave(ByVal SaveAsUI _
  Booleanként, Mégse logikai értékként)
  Dim Counter As Range
  Set Counter = Lapok("Lap1").Tartomány("A1")
  Számláló.Érték = Counter.Value + 1
Vége Sub

Figyelje meg, hogy a Workbook_BeforeSave eljárásnak két argumentuma van: SaveAsUI és Cancel. Az argumentumok működésének bemutatásához vizsgálja meg a következő makrót, amely a munkafüzet mentése előtt fut le. Ez az eljárás megpróbálja megakadályozni, hogy a felhasználó más néven mentse a munkafüzetet. Ha a felhasználó a Fájl → Mentés másként lehetőséget választja, a SaveAsUI argumentum igaz.

Amikor a kód végrehajtódik, ellenőrzi a SaveAsUI értéket. Ha ez a változó True, az eljárás egy üzenetet jelenít meg, és a Mégse értéket igazra állítja, ami megszakítja a mentési műveletet.

Privát almunkafüzet_BeforeSave(ByVal SaveAsUI _
  Booleanként, Mégse logikai értékként)
  Ha SaveAsUI Akkor
    MsgBox "Nem mentheti el a munkafüzet másolatát!"
  Mégse = Igaz
  Vége Ha
Vége Sub

Vegye figyelembe, hogy ez az eljárás nem igazán akadályoz meg senkit abban, hogy más néven mentse a másolatot. Ha valaki valóban meg akarja csinálni, egyszerűen megnyithatja a munkafüzetet letiltott makróval. Ha a makrók le vannak tiltva, az eseménykezelő eljárások is le vannak tiltva, ami logikus, mert ezek végül is makrók.

Leave a Comment

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban. Részletes útmutató, hogyan készíthet különféle stílusú jegyzeteket bibliográfiai információkhoz vagy magyarázó megjegyzésekhez.

Hogyan lehet kiemelni a statisztikailag kiugró értékeket az Excelben

Hogyan lehet kiemelni a statisztikailag kiugró értékeket az Excelben

Tudjon meg mindent arról, hogyan lehet az Excelben kiemelni a statisztikailag kiugró értékeket, mégpedig egyszerű eszközökkel és módszerekkel. Kiemelt figyelmet fordítunk a kiugró értékek azonosítására és kezelésére.

Hogyan lehet mintát venni az adatokból Excelben

Hogyan lehet mintát venni az adatokból Excelben

Az Excel Mintavételi eszközével véletlenszerűen kiválaszthat elemeket egy adatkészletből vagy választhat minden n-edik elemet. Ismerje meg, hogyan használhatja ezt a hasznos funkciót az adatelemzéshez!

10 klassz trükk a Microsoft Word 2019 programmal

10 klassz trükk a Microsoft Word 2019 programmal

Fedezze fel a Microsoft Word 2019 legjobb trükkjeit, amelyek segítenek a hatékonyabb munkavégzésben. Tudd meg, hogyan használhatod ki a program funkcióit!

Bekezdések igazítása és behúzása a Word 2019-ben

Bekezdések igazítása és behúzása a Word 2019-ben

A Word 2019-ben a bekezdések igazítása és behúzása kulcsfontosságú a dokumentumok megfelelő megjelenítéséhez. Ismerje meg a formázási lehetőségeket és tippeket a hatékonyabb munkához.

Az Excel 2019 Solver használata

Az Excel 2019 Solver használata

Fedezze fel, hogyan használhatja az Excel 2019 Solver bővítményt a komplex problémák megoldására. A célcella, változócellák és kényszerek beállítása lépésről lépésre.

Dinamikus elemek hozzáadásához használja a Word 2019 mezőit

Dinamikus elemek hozzáadásához használja a Word 2019 mezőit

A Word lehetővé teszi dinamikus elemek hozzáadását a dokumentumhoz. Fedezze fel, hogyan lehet különböző mezőket használni a Word programban a dinamikus tartalom létrehozásához.

Oszloptípusok a SharePoint 2010-ben

Oszloptípusok a SharePoint 2010-ben

A SharePoint 2010 oszlopai az adatok tárolására szolgálnak. Fedezze fel a különböző oszlop típusokat és azok alkalmazását a SharePoint rendszeren belül.

A nem kívánt szöveg eltávolítása a Word 2013-ban

A nem kívánt szöveg eltávolítása a Word 2013-ban

A Word 2013 szövegtörlésének képessége kulcsfontosságú, legyen szó szövegalkotásról vagy törlésről. Ismerje meg a hatékony szövegtörlési módszereket!

Hogyan készítsünk fotóalbumot a PowerPoint 2016-ban

Hogyan készítsünk fotóalbumot a PowerPoint 2016-ban

A fotóalbum funkció a PowerPoint 2016-ban lehetővé teszi, hogy egyszerre több fényképet illesszen be egy prezentációba, megkönnyítve ezzel a többszörös képek kezelését.