Az OnTime események és a Keypress Events használata az Excel 2016 VBA programban

Az Excel 2016 VBA programozásában kétféle esemény használható, amelyek nincsenek objektumokhoz társítva: idő és billentyűlenyomás. Mivel az idő és a billentyűlenyomások nincsenek egy adott objektumhoz, például munkafüzethez vagy munkalaphoz társítva, ezeket az eseményeket egy normál VBA-modulban programozza.

Az OnTime esemény

Az OnTime esemény akkor következik be, amikor egy adott napszakban előfordul. A következő példa bemutatja, hogyan kell az Excelt végrehajtani egy eljárás során, amikor a délután 3 óra esemény bekövetkezik. Ebben az esetben egy robothang üzenődoboz kíséretében ébredést kér:

Sub SetAlarm()
  Application.OnTime 0.625, „DisplayAlarm”
Vége Sub
Sub DisplayAlarm()
  Alkalmazás.Beszéd.Beszéd („Hé, ébredj fel”)
  MsgBox „Itt az ideje a délutáni szünetnek!”
Vége Sub

Ebben a példában az Application objektum OnTime metódusát használjuk. Ez a metódus két argumentumot használ: az időt (0,625 vagy 15:00) és az időesemény bekövetkezésekor végrehajtandó aleljárás nevét (DisplayAlarm).

Ez az eljárás nagyon hasznos, ha hajlamos annyira belemerülni a munkájába, hogy megfeledkezik a találkozókról és találkozókról. Csak állítson be egy OnTime eseményt, hogy emlékeztesse magát.

A legtöbb ember nehezen gondolja az időt az Excel számozási rendszerben. Ezért érdemes a VBA TimeValue függvényt használni az idő megjelenítésére. A TimeValue az időnek tűnő karakterláncot olyan értékké alakítja, amelyet az Excel kezelni tud. Az alábbi nyilatkozat egy egyszerűbb módot mutat be egy esemény 15 órára történő programozására:

Application.OnTime TimeValue("15:00:00"), "DisplayAlarm"

Ha egy eseményt az aktuális időhöz képest szeretne ütemezni (például 20 perc múlva), használhatja a következő utasításokat:

Application.OnTime Now + TimeValue("00:20:00"), "DisplayAlarm"

Az OnTime módszerrel VBA-eljárást is futtathat egy adott napon. Győződjön meg arról, hogy a számítógép folyamatosan fut, és az eljárást tartalmazó munkafüzet nyitva van. A következő nyilatkozattal fut a DisplayAlarm eljárás 2016. december 31-én 17 órakor:

Application.OnTime DateValue(“2016.12.31. 17:00”), „DisplayAlarm”

Ez a kódsor jól jöhet, hogy figyelmeztesse Önt arra, hogy haza kell mennie, és fel kell készülnie a szilveszteri mulatságra.

Íme egy másik példa, amely az OnTime eseményt használja. Az UpdateClock eljárások végrehajtása beírja az időt az A1 cellába, és egy másik eseményt is programoz öt másodperccel később. Ez az esemény újra futtatja az UpdateClock eljárást. A nettó hatás az, hogy az A1 cella öt másodpercenként frissül az aktuális idővel. Az események leállításához hajtsa végre a StopClock eljárást (amely törli az eseményt). Vegye figyelembe, hogy a NextTick egy modulszintű változó, amely a következő esemény idejét tárolja.

Dim NextTick As Date
Sub UpdateClock()
Frissíti az A1 cellát az aktuális idővel
  ThisWorkbook.Sheets(1).Range(“A1”) = Idő
Állítsa be a következő eseményt öt másodperc múlva
  NextTick = Most + Időérték ("00:00:05")
  Application.OnTime NextTick, „UpdateClock”
Vége Sub
Sub StopClock()
Törli az OnTime eseményt (leállítja az órát)
  Hiba esetén Folytatás a következőre
  Application.OnTime NextTick, “UpdateClock”, , False
Vége Sub

Az OnTime esemény a munkafüzet bezárása után is megmarad. Más szóval, ha bezárja a munkafüzetet a StopClock eljárás futtatása nélkül, a munkafüzet öt másodpercen belül újra megnyílik (feltételezve, hogy az Excel még fut). Ennek megakadályozására használjon egy Workbook_BeforeClose eseményeljárást, amely a következő utasítást tartalmazza:

Hívja a StopClock-ot

Az OnTime metódusnak két további argumentuma van. Ha ezt a módszert tervezi használni, a súgórendszerben talál további részleteket.

Ha egy meglehetősen bonyolult alkalmazást szeretne látni, nézze meg ezt az analóg óra alkalmazást. Az óra számlapja valójában egy diagram, és a diagram másodpercenként frissül, hogy megjelenítse a napszakot. Haszontalan, de szórakoztató.

Az OnTime események és a Keypress Events használata az Excel 2016 VBA programban

Analóg óra alkalmazás.

Billentyűnyomás események

Munka közben az Excel folyamatosan figyeli, hogy mit gépel. Emiatt beállíthatja a dolgokat úgy, hogy egy billentyűleütés vagy egy billentyűkombináció hajtson végre egy eljárást.

Íme egy példa a PgDn és a PgUp kulcsok újra hozzárendelésére:

Sub Setup_OnKey()
  Application.OnKey „{PgDn}”, „PgDn_Sub”
  Application.OnKey „{PgUp}”, „PgUp_Sub”
Vége Sub
Sub PgDn_Sub()
  Hiba esetén Folytatás a következőre
  ActiveCell.Offset(1, 0).Aktiválás
Vége Sub
Sub PgUp_Sub()
  Hiba esetén Folytatás a következőre
  ActiveCell.Offset(-1, 0).Aktiválás
Vége Sub

Miután beállította az OnKey eseményeket a Setup_OnKey eljárás végrehajtásával, a PgDn lenyomásával egy sorral lejjebb léphet. A PgUp megnyomásával egy sorral feljebb léphet.

Figyelje meg, hogy a kulcskódok kapcsos zárójelben vannak, nem pedig zárójelben. A billentyűzetkódok teljes listáját a Súgóban találja. Keresse meg az OnKey-t.

Ebben a példában az On Error Resume Next (Hiba esetén folytatás) funkciót használjuk a generált hibák figyelmen kívül hagyására. Például, ha az aktív cella az első sorban van, az egy sorral feljebb való mozgás olyan hibát okoz, amely nyugodtan figyelmen kívül hagyható. És ha egy diagramlap aktív, akkor nincs aktív cella.

A következő rutin végrehajtásával törölheti az OnKey eseményeket:

Sub Cancel_OnKey()
  Application.OnKey „{PgDn}”
  Application.OnKey „{PgUp}”
Vége Sub

Üres karakterlánc használata az OnKey metódus második argumentumaként nem törli az OnKey eseményt. Ehelyett az Excel egyszerűen figyelmen kívül hagyja a billentyűleütést. Például a következő utasítás arra utasítja az Excelt, hogy figyelmen kívül hagyja az Alt+F4-et. A százalékjel az Alt billentyűt jelöli:

  Application.OnKey "%{F4}", ""

Bár az OnKey metódussal hozzárendelhet egy gyorsbillentyűt egy makró végrehajtásához, ehhez a feladathoz a Makróbeállítások párbeszédpanelt kell használnia.

Ha bezárja a kódot tartalmazó munkafüzetet, és nyitva hagyja az Excelt, az OnKey metódus nem áll vissza. Ennek eredményeként a billentyűparancs megnyomásával az Excel automatikusan megnyitja a fájlt a makróval. Ennek elkerülése érdekében az OnKey esemény visszaállításához vegyen fel kódot a Workbook_BeforeClose eseménykódba.

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.