Príklady Excel VBA: Príklady úvodných udalostí

Ak sa snažíte dobre pochopiť Excel VBA , pravdepodobne by ste mohli využiť niekoľko príkladov na rozvoj tejto základnej vizuálnej zručnosti. Tu nájdete niekoľko príkladov Excel VBA, aby ste sa zorientovali v tomto biznise v oblasti spracovania udalostí.

Príklad Excel VBA: Udalosť Open pre zošit

Jednou z najčastejšie používaných udalostí Excel VBA je udalosť Otvorený zošit. Predpokladajme, že máte pracovný zošit, ktorý používate každý deň. Procedúra Workbook_Open v tomto príklade sa vykoná pri každom otvorení zošita. Postup kontroluje deň v týždni; ak je piatok, kód vám zobrazí pripomenutie.

Ak chcete vytvoriť procedúru Excel VBA, ktorá sa spustí vždy, keď dôjde k udalosti otvorenia zošita, postupujte takto:

Otvorte excelový zošit.
Postačí akýkoľvek excelový zošit.

Stlačením Alt+F11 aktivujte VBE.

Nájdite zošit v okne Projekt.

Ak je to potrebné, dvakrát kliknite na názov projektu, aby sa zobrazili jeho položky.

Dvakrát kliknite na položku ThisWorkbook.
VBE zobrazí prázdne okno Kód pre objekt ThisWorkbook.

V okne Kód vyberte zošit z rozbaľovacieho zoznamu Objekt (vľavo).
VBE zadá začiatok a koniec príkazu pre procedúru Workbook_Open.

Zadajte nasledujúce príkazy, aby celý proces udalosti vyzeral takto:

Private Sub Workbook_Open()
  Dim Msg As String
  Ak týždenný deň (teraz) = 6, potom
    Msg = "Dnes je piatok. Nezabudnite "
    Msg = Msg & "submit the TPS Report!"
    MsgBox Msg
  Koniec Ak
End Sub

Okno s kódom by malo vyzerať takto.

Príklady Excel VBA: Príklady úvodných udalostí

Táto procedúra obsluhy udalosti sa spustí pri otvorení zošita.

Workbook_Open sa spustí automaticky pri každom otvorení zošita. Na určenie dňa v týždni používa funkciu WeekDay VBA. Ak je piatok (6. deň), okno so správou používateľovi pripomenie, aby predložil hlásenie. Ak nie je piatok, nič sa nedeje.

Ak dnes nie je piatok, možno budete mať problém otestovať tento postup. Stačí zmeniť číslo 6 tak, aby zodpovedalo dnešnému skutočnému číslu dňa.

A samozrejme, môžete tento postup ľubovoľne upraviť. Napríklad nasledujúca verzia zobrazí správu pri každom otvorení zošita. Po chvíli to začne byť otravné.

Procedúra Workbook_Open dokáže takmer čokoľvek. Tieto manipulátory udalostí sa často používajú na:

  • Zobrazovanie uvítacích správ (napríklad vo Frankovom skvelom zošite)
  • Otváranie ďalších zošitov
  • Aktivácia konkrétneho pracovného hárka v zošite
  • Nastavenie vlastných kontextových ponúk

Tu je posledný príklad Excel VBA procedúry Workbook_Open, ktorá využíva funkcie GetSetting a SaveSetting na sledovanie toho, koľkokrát bol zošit otvorený. Funkcia SaveSetting zapíše hodnotu do registra Windows a funkcia GetSetting túto hodnotu načíta (podrobnosti nájdete v systéme pomoci). Nasledujúci príklad Excel VBA načíta počet z registra, zvýši ho a potom ho uloží späť do registra. Používateľovi tiež oznámi hodnotu Cnt, ktorá zodpovedá počtu otvorení zošita.

Private Sub Workbook_Open()
  Dim Cnt As Long
  Cnt = GetSetting("Moja aplikácia", "Nastavenia", "Otvoriť", 0)
  Cnt = Cnt + 1
  SaveSetting "MyApp", "Settings", "Open", Cnt
  MsgBox "Tento zošit bol otvorený " & Cnt & " krát."
End Sub

Príklady Excel VBA: Príklady úvodných udalostí

Použitie obslužného programu udalostí Workbook_Open na sledovanie toho, koľkokrát bol zošit otvorený.

Príklad Excel VBA: Udalosť BeforeClose pre zošit

Tu je príklad procedúry obsluhy udalosti Excel VBA Workbook_BeforeClose, ktorá sa spustí automaticky bezprostredne pred zatvorením zošita. Tento postup sa nachádza v okne Kód pre objekt ThisWorkbook:

Súkromný podriadený zošit_pred zatvorením (zrušiť ako boolovský)
  Dim Msg As String
  Dim Ans As Long
  Dim FName As String
  Msg = "Chcete vytvoriť zálohu tohto súboru?"
  Ans = MsgBox(Msg, vbYesNo)
  Ak Ans = vbYes Then
    FName = "F:\BACKUP\" & ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs FName
  Koniec Ak
End Sub

Táto rutina používa okno s hlásením, aby sa používateľa spýtala, či by chcel vytvoriť záložnú kópiu zošita. Ak je odpoveď áno, kód používa metódu SaveCopyAs na uloženie záložnej kópie súboru na jednotku F. Ak si tento postup prispôsobíte pre svoje vlastné použitie, musíte zmeniť jednotku a cestu.

Programátori Excelu často používajú postup Workbook_BeforeClose, aby po sebe upratali. Ak napríklad použijete procedúru Workbook_Open na zmenu niektorých nastavení pri otvorení zošita (napríklad skrytie stavového riadka), je vhodné vrátiť nastavenia do pôvodného stavu, keď zošit zatvoríte. Túto elektronickú upratovaciu službu môžete vykonať pomocou postupu Workbook_BeforeClose.

Pri používaní udalosti Workbook_BeforeClose majte na pamäti toto: Ak zatvoríte Excel a akýkoľvek otvorený súbor sa od posledného uloženia zmenil, Excel zobrazí obvyklé okno so správou „Chcete uložiť svoje zmeny“. Kliknutím na tlačidlo Zrušiť zrušíte celý proces uzatvárania. Udalosť Workbook_BeforeClose sa však aj tak vykoná.

Príklad Excel VBA: Udalosť BeforeSave pre zošit

Udalosť BeforeSave, ako už názov napovedá, sa spustí pred uložením zošita. Táto udalosť nastane, keď vyberiete Súbor → Uložiť alebo Súbor → Uložiť ako.

Nasledujúci postup, ktorý je umiestnený v okne Kód pre objekt ThisWorkbook, demonštruje udalosť BeforeSave. Rutina aktualizuje hodnotu v bunke (bunka A1 na Hárok1) pri každom uložení zošita. Inými slovami, bunka A1 slúži ako počítadlo na sledovanie toho, koľkokrát bol súbor uložený.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI _
  Ako Boolean, Zrušiť ako Boolean)
  Stlmiť počítadlo ako rozsah
  Nastaviť počítadlo = Listy("Hárok1").Rozsah ("A1")
  Counter.Value = Counter.Value + 1
End Sub

Všimnite si, že procedúra Workbook_BeforeSave má dva argumenty: SaveAsUI a Cancel. Ak chcete demonštrovať, ako tieto argumenty fungujú, preskúmajte nasledujúce makro, ktoré sa spustí pred uložením zošita. Tento postup sa pokúša zabrániť používateľovi uložiť zošit pod iným názvom. Ak používateľ vyberie Súbor → Uložiť ako, argument SaveAsUI bude mať hodnotu True.

Keď sa kód spustí, skontroluje hodnotu SaveAsUI. Ak je táto premenná True, procedúra zobrazí správu a nastaví Cancel na True, čím sa zruší operácia Save.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI _
  Ako Boolean, Zrušiť ako Boolean)
  Ak SaveAsUI Then
    MsgBox "Nemôžete uložiť kópiu tohto zošita!"
  Zrušiť = pravda
  Koniec Ak
End Sub

Upozorňujeme, že tento postup skutočne nikomu nezabráni v uložení kópie pod iným názvom. Ak to niekto naozaj chce urobiť, môže otvoriť zošit so zakázanými makrami. Keď sú makrá zakázané, sú zakázané aj procedúry obsluhy udalostí, čo dáva zmysel, pretože sú to makrá.


Ako zablokovať Microsoft Word otváranie súborov v režime iba na čítanie v systéme Windows

Ako zablokovať Microsoft Word otváranie súborov v režime iba na čítanie v systéme Windows

Ako zablokovať Microsoft Word otváranie súborov v režime len na čítanie v systéme Windows Microsoft Word otvára súbory v režime len na čítanie, takže ich nie je možné upravovať? Nebojte sa, metódy sú uvedené nižšie

Ako opraviť nesprávnu tlač dokumentov Microsoft Word

Ako opraviť nesprávnu tlač dokumentov Microsoft Word

Ako opraviť chyby pri tlači nesprávnych dokumentov Microsoft Word Chyby pri tlači dokumentov Word so zmeneným typom písma, chaotickými odsekmi, chýbajúcim textom alebo strateným obsahom sú pomerne časté. Avšak, nie

Vymažte kresby perom a zvýrazňovačom na svojich PowerPointových snímkach

Vymažte kresby perom a zvýrazňovačom na svojich PowerPointových snímkach

Ak ste použili pero alebo zvýrazňovač na kreslenie na powerpointové snímky počas prezentácie, môžete si kresby uložiť pre ďalšiu prezentáciu alebo ich vymazať, aby ste pri ďalšom zobrazení začali s čistými powerpointovými snímkami. Ak chcete vymazať kresby perom a zvýrazňovačom, postupujte podľa týchto pokynov: Vymazanie riadkov jedna na […]

Obsah knižnice štýlov v SharePointe 2010

Obsah knižnice štýlov v SharePointe 2010

Knižnica štýlov obsahuje súbory CSS, súbory XSL (Extensible Stylesheet Language) a obrázky používané preddefinovanými vzorovými stránkami, rozloženiami strán a ovládacími prvkami v SharePointe 2010. Ak chcete nájsť súbory CSS v knižnici štýlov publikačnej lokality: Vyberte Akcie lokality→Zobraziť Všetok obsah stránky. Zobrazí sa obsah stránky. Knižnica štýlov sa nachádza v […]

Formátovanie čísel v tisíckach a miliónoch v správach Excel

Formátovanie čísel v tisíckach a miliónoch v správach Excel

Nezahlcujte svoje publikum obrovskými číslami. V programe Microsoft Excel môžete zlepšiť čitateľnosť svojich tabúľ a zostáv formátovaním čísel tak, aby sa zobrazovali v tisíckach alebo miliónoch.

Ako zdieľať a sledovať lokality SharePoint

Ako zdieľať a sledovať lokality SharePoint

Zistite, ako používať nástroje sociálnych sietí SharePoints, ktoré umožňujú jednotlivcom a skupinám komunikovať, spolupracovať, zdieľať a spájať sa.

Ako previesť dátumy do Julianových formátov v Exceli

Ako previesť dátumy do Julianových formátov v Exceli

Juliánske dátumy sa často používajú vo výrobných prostrediach ako časová pečiatka a rýchla referencia pre číslo šarže. Tento typ kódovania dátumu umožňuje maloobchodníkom, spotrebiteľom a servisným zástupcom identifikovať, kedy bol produkt vyrobený, a teda aj vek produktu. Juliánske dátumy sa používajú aj v programovaní, armáde a astronómii. Rôzne […]

Ako vytvoriť Access Web App

Ako vytvoriť Access Web App

V Accesse 2016 môžete vytvoriť webovú aplikáciu. Čo je to teda webová aplikácia? Web znamená, že je online a aplikácia je len skratka pre „aplikáciu“. Vlastná webová aplikácia je online databázová aplikácia, ku ktorej sa pristupuje z cloudu pomocou prehliadača. Vytvárate a udržiavate webovú aplikáciu vo verzii pre počítače […]

Panel rýchleho spustenia v SharePointe 2010

Panel rýchleho spustenia v SharePointe 2010

Väčšina stránok v SharePointe 2010 zobrazuje zoznam navigačných prepojení na paneli Rýchle spustenie pozdĺž ľavej strany stránky. Panel Rýchle spustenie zobrazuje prepojenia na odporúčaný obsah lokality, ako sú zoznamy, knižnice, lokality a publikačné stránky. Panel Rýchle spustenie obsahuje dva veľmi dôležité odkazy: Odkaz na celý obsah lokality: […]

Čo znamenajú chybové hlásenia v programe Excel?

Čo znamenajú chybové hlásenia v programe Excel?

Pre jednoduché problémy Riešiteľ v Exceli zvyčajne rýchlo nájde optimálne hodnoty premennej Riešiteľ pre cieľovú funkciu. V niektorých prípadoch má však Riešiteľ problém nájsť hodnoty premennej Riešiteľ, ktoré optimalizujú cieľovú funkciu. V týchto prípadoch Riešiteľ zvyčajne zobrazí hlásenie alebo chybové hlásenie, ktoré popisuje alebo diskutuje problém, ktorý […]