Ako spustiť makro v programe Excel

Aj keď spustenie makra v programe Excel nie je ťažké, existuje veľa spôsobov, ako ich spustiť. Niektoré spôsoby majú uľahčiť používanie makier, zatiaľ čo iné môžu úplne zmeniť spôsob, akým používateľ interaguje s vašim zošitom. V tomto článku sa budeme zaoberať niektorými zrejmými spôsobmi spustenia makier, ako sú zoznamy makier a ovládacie prvky tlačidiel, a niektorými nejasnejšími spôsobmi, ako sú editor VB a udalosti.

Najprv: Zaistite, aby boli povolené makrá

Bezpečnostné funkcie Excelu v predvolenom nastavení zakážu makrá. Pri otváraní zošita s povolenými makrami sú používatelia spravidla vyzvaní, ak chcú povoliť makrá.

Ak nemôžete spustiť makrá, skúste postupovať podľa týchto pokynov:

  • Uložte zošit
  • Zatvorte zošit a potom ho znova otvorte
  • Po načítaní zošita sa zobrazí a Bezpečnostné varovanie výzvu (na obrázku nižšie). Kliknite Povoliť obsah.

Spustite makro zo zoznamu makier

Zoznam makier je prístupný z karty Zobraziť. Ak chcete zobraziť tento zoznam:

  • Vyberte položku vyhliadka tab
  • Kliknite na tlačidlo označené Makrá vyvoláte zoznam makier

  • V zozname vyberte makro, ktoré chcete spustiť, a potom kliknite na Utekaj tlačidlo

Zoznam makier môžete tiež kedykoľvek zobraziť stlačením ALT+F8.

Spustite makro pomocou klávesovej skratky

K makru, ktoré často používate, môžete priradiť klávesovú skratku, vo forme CTRL+alebo CTRL+SHIFT+. Robiť to:

  • Vyvolajte zoznam makier (vyhliadka > Makráalebo ALT+F8)
  • Vyberte makro, na ktoré chcete použiť skratku
  • Kliknite Možnosti… ukázať Možnosti makra čiastkový dialóg

  • V textovom poli pod Klávesová skratka, zadajte jedno písmeno a potom kliknite na OK. Ak pri písaní písmena podržíte kláves SHIFT, na štítku vedľa poľa sa ako skratka zobrazí SHIFT

POZNÁMKA: pri vytváraní klávesovej skratky sa odporúča použiť SHIFT! Excel sám používa skratky CTRL+, napr. CTRL+C na kopírovanie alebo CTRL+V na uloženie. Ak vytvoríte skratku makra pomocou týchto alebo iných skratiek programu Excel, budete ich prepísať, kým znova nepriradíte skratku makra.

Spustite makro z editora VB

Makrá je možné spustiť aj z editora VB. Editor VB vám umožňuje skontrolovať kód makra a vykonať požadované zmeny pred jeho spustením.

Spustenie makra v editore VB:

  • Otvorte editor VB (karta Vývojár> Visual Basic alebo ALT+F11)

  • V Projekt v okne dvakrát kliknite na modul obsahujúci makro, ktoré chcete otestovať
  • V okne kódu modulu umiestnite kurzor kdekoľvek v kóde makra medzi „Sub“ a „End Sub“
  • Kliknite na Utekaj na paneli s nástrojmi alebo stlačte klávesovú skratku F5

Spustite makro pomocou tlačidla alebo tvaru

Často je užitočné mať v pracovnom hárku ovládací prvok, na ktorý môže používateľ kliknutím spustiť makro, napríklad ovládací prvok Tlačidlo alebo Tvar. Pre koncových používateľov je to oveľa rýchlejšie ako otváranie zoznamov makier alebo kopanie kódu makra v editore VB.

Informácie o tom, ako vytvoriť tlačidlo alebo tvar, na ktoré sa dá kliknúť, nájdete tu: Pridať tlačidlo a priradiť makro v programe Excel.

Automatické spustenie makra pomocou udalostí vo VBA

Spustenie makra je možné, keď sa niečo stane v programe Excel - napríklad pri otvorení zošita alebo pri zmene hodnoty bunky. Tieto sa nazývajú Diania, a môžete im napísať kód VBA na volanie makier alebo vykonávanie iných operácií.

Na napísanie kódu pre udalosť budete potrebovať editor VB. Ak chcete napríklad zobraziť udalosti pre zošit:

  • Otvorte editor VB (ALT+F11)
  • Dvakrát kliknite na Táto pracovná kniha objekt v editore VB Okno projektu
  • V rozbaľovacej ponuke v ľavej hornej časti okna s kódom vyberte položku „Zošit“
  • Kliknutím na rozbaľovaciu ponuku vpravo zobrazíte zoznam udalostí

Nasleduje malá, ale užitočná ukážka udalostí programu Excel, z ktorých je možné spustiť makrá.

Zošit_otvorený ()

Udalosť Workbook_Open () sa spustí, keď je zošit otvorený. Ak dostanete upozornenie na zabezpečenie po otvorení zošita, táto udalosť sa spustí po kliknutí na „Povoliť obsah“.

12345 Súkromný čiastkový zošit_Otvorený ()MsgBox „Pracovný zošit bol otvorený!“Koniec pod

Zošit_BeforeClose (zrušiť ako booleovskú)

Workbook_BeforeClose () sa spustí, keď sa používateľ pokúsi zavrieť zošit. Stáva sa to predtým, ako sa vykonajú kontroly, či je potrebné zošit uložiť.

The Zrušiť parameter je možné nastaviť na hodnotu True, aby sa zošit nezavrel.

123456789 Súkromný čiastkový zošit_BeforeClose (zrušiť ako boolean)Ak MsgBox („Si si istý?“, VbYesNo + vbQuestion, „Zavrieť“) = vbNo PotomZrušiť = PravdaKoniec AkKoniec pod

Worksheet_Change (ByVal Target As Range)

Worksheet_Change () sa spustí, keď sa zmení hodnota bunky - či už sa zmení makrom, operáciou kopírovania/vkladania alebo externým odkazom. Nespustí sa však, keď je hodnota prepočítaná pomocou vzorca.

The Cieľ parameter predstavuje bunky, ktorých hodnota sa zmenila.

Ak zmeníte hodnotu ostatných buniek v rámci tejto udalosti, udalosť sa spustí znova. To môže spôsobiť nekonečnú slučku. Ak potrebujete zmeniť hodnoty buniek bez spustenia tejto udalosti, zvážte nastavenie Aplikácia.EnableEvents do Falošné najskôr a potom ho nastavte späť na Pravda na konci postupu akcie.

123456789 Súkromný čiastkový pracovný hárok_Zmeniť (ByVal cieľ ako rozsah)MsgBox „Bunky zmenené:“ & Target.AddressApplication.EnableEvents = FalseRozsah ("A2"). Hodnota = rozsah ("A2"). Hodnota + Target.Cells.CountApplication.EnableEvents = PravdaKoniec pod

Worksheet_SelectionChange (ByVal Target As Range)

Táto udalosť sa spustí vždy, keď sa pomocou zameriavacieho kríža vyberú rôzne bunky. Parameter Target predstavuje nové bunky, ktoré boli vybraté.

Túto udalosť môžete spustiť aj pomocou kódu, tj. „Rozsah („ A1 “). Vyberte položku. Rovnako ako v prípade Worksheet_Change () by ste mali byť pri výbere ďalších buniek v tejto udalosti opatrní, pretože môžete spôsobiť nekonečnú slučku. Použite aplikáciu Application.EnableEvents.

123456789 Súkromný čiastkový pracovný hárok_Voľba výberu (ByVal Target As Range)Ak Target.Address = "$ A $ 1" PotomMsgBox „Kurzor v základnej polohe“.Koniec AkKoniec pod

Zastavte spustené makro

Spustené makro je možné prerušiť stlačením ESC alebo CTRL+BREAK. V predvolenom nastavení prerušené makro zobrazí nasledujúce dialógové okno:

Klikanie Koniec zastaví makro, zatiaľ čo ďalej obnoví to. Klikanie Ladiť otvorí makro v editore VB a zameria riadok kódu, na ktorom bolo pozastavené spustenie. (V editore VB môžete makro zastaviť alebo obnoviť pomocou tlačidiel Spustiť alebo Ukončiť na paneli s nástrojmi.)

Application.EnableCancelKey

Možnosť zastaviť makro môžete vypnúť pomocou klávesu ESC alebo CTRL+BREAK nastavením Application.EnableCancelKey nehnuteľnosť. Táto vlastnosť má tri možné hodnoty:

  • xl Prerušiť - toto je predvolená hodnota, vďaka ktorej Excel zobrazí vyššie uvedené dialógové okno
  • xl Zakázané - odstráni možnosť zastaviť spustené makro
  • xlErrorHandler - keď dôjde k pokusu o prerušenie, dôjde k chybe, ktorú je možné spracovať v kóde

Kedykoľvek sa spustenie kódu zastaví, Excel vždy vynuluje hodnotu Application.EnableCancelKey späť na xl Prerušiť.

Dobrým dôvodom na používanie tejto vlastnosti je bezpečnosť. Ak ste napríklad mali makro, ktoré dočasne nechránilo časti vášho zošita, používateľ by potenciálne mohol makro zastaviť bezprostredne po zrušení ochrany a získať prístup k obsahu, ktorý ste nemali v úmysle mať. Nastavením Application.EnableCancelKey môžete úplne zakázať ich schopnosť to urobiť alebo ich prerušenie elegantne zvládnuť pomocou obsluhy chýb, ktorá zošit znova ochráni.

1234567891011 Sub UpdateBaseData (ByVal NewData As Range, ByVal Target As Range)Application.EnableCancelKey = xlDisabledTarget.Worksheet.Unprotect "MyPassword"NewData.Copy TargetTarget.Worksheet.Protect "MyPassword"Application.EnableCancelKey = xlInterruptKoniec pod

Vynútené zatvorenie programu Excel pomocou Správcu úloh systému Windows

Ak sa makro „zavesilo“ alebo je program Excel príliš zaneprázdnený na potvrdenie pokusu o prerušenie, možno budete musieť vynútene zavrieť samotný program Excel pomocou Správca úloh systému Windows. (POZNÁMKA: Ak to urobíte, môžete prísť o neuloženú prácu a budete sa musieť spoliehať na verziu vášho zošita na automatické obnovenie.)

  • Otvorte Správcu úloh priamo pomocou CTRL+SHIFT+ESC
  • Vyberte „ProcesyTab
  • Rozbalením položky „Microsoft Excel“ zobrazíte všetky zošity
  • Vyberte zošit, ktorý chcete zavrieť, a potom kliknite na Ukončiť úlohu v pravom dolnom rohu

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave