Makro bat garaiz exekutatzen

Praktikan oso ohikoa den kasua: zure makro bat edo gehiago exekutatu behar dituzu une jakin batean edo maiztasun jakin batean. Adibidez, ordu erdi eguneratzen den txosten handi eta astun bat duzu eta eguneraketa lanera iritsi baino ordu erdi lehenago exekutatu nahiko zenuke goizean. Edo makro bat baduzu, langileei mezu elektronikoak automatikoki bidali behar dizkien maiztasun zehatz batean. Edo, taula dinamiko batekin lan egiten duzunean, 10 segundotan behin hegan eguneratzea nahi duzu, eta abar.

Ikus dezagun zer gaitasun duten Excel-ek eta Windowsek hau ezartzeko.

Makro bat maiztasun jakin batean exekutatzen

Horretarako modurik errazena VBA metodoa erabiltzea da Aplikazioa.OnTimeZehaztutako makroa exekutatzen duena zehaztutako unean. Uler dezagun hau adibide praktiko batekin.

Ireki Visual Basic editorea fitxako izen bereko botoiarekin developer (Garatzailea) edo teklatuko lasterbidea Alt+F11, sartu modulu berri bat menuan Txertatu – Modulua eta kopiatu bertan kodea:

Dim TimeToRun 'hurrengo exekuzio-denbora gordetzen den aldagai globala' hau da makro nagusia Sub MyMacro() Application.Calculate 'liburua berriro kalkulatu Range("A1").Interior.ColorIndex = Int(Rnd() * 56) 'bete A1 gelaxka ausazko kolore batekin :) Deitu NextRun 'exekutatu NextRun makroa hurrengo exekuzio-denbora ezartzeko End Sub 'makro honek makro nagusiaren hurrengo exekuzioaren ordua ezartzen du Sub NextRun() TimeToRun = Now + TimeValue ("00: 00:03") 'gehitu 3 segundo uneko orduari Application.OnTime TimeToRun, "MyMacro" 'programatu hurrengo exekuzioa End Sub 'makroa errepikapen sekuentzia hasteko Sub Start() Deitu NextRun End Sub 'makro errepikatu sekuentzia gelditzeko Sub Finish() Application.OnTime TimeToRun, "MyMacro", , False End Sub  

Azter dezagun zer den hemen.

Lehenik eta behin, gure makroaren hurrengo exekuzioaren denbora gordeko duen aldagai bat behar dugu - deitu nuen TimeToRun. Kontuan izan aldagai honen edukiak gure ondorengo makro guztientzat eskuragarri egon behar duela, beraz, egin behar dugu global, hau da, moduluaren hasieran deklaratu lehenengoaren aurretik Sub.

Ondoren gure makro nagusia dator Nire makroa, zeregin nagusia egingo duena: metodoa erabiliz liburua berriro kalkulatzea Aplikazioa.Kalkulatu. Argiagoa izan dadin, =TDATE() formula gehitu dut A1 gelaxkako orrira, eta data eta ordua bistaratzen ditu; berriro kalkulatzen denean, bere edukia gure begien aurrean eguneratuko da (gelaxkako segundoen bistaratzea besterik ez da aktibatu. formatua). Gehiago dibertitzeko, makroari A1 gelaxka ausaz hautatutako kolore batekin betetzeko komandoa ere gehitu nuen (kolore-kodea 0..56 tarteko zenbaki oso bat da, funtzioak sortzen duena. Rnd eta funtzio oso batera biribiltzen du Int).

Macro NextRun aurreko balioari gehitzen dio TimeToRun 3 segundo gehiago eta gero makro nagusiaren hurrengo exekuzioa programatzen du Nire makroa garai berri honetarako. Jakina, praktikan, behar dituzun beste edozein denbora tarte erabil ditzakezu funtzioaren argumentuak ezarriz DenboraBalioa hh:mm:ss formatuan.

Eta azkenik, erosotasunagatik, sekuentzia abiarazteko makro gehiago gehitu dira. Hasiera eta bere osatzea Amaitu. Azkenak laugarren metodoaren argumentua erabiltzen du sekuentzia hausteko. Denbora berdina False.

Guztira makroa exekutatzen baduzu Hasiera, orduan karrusel hau guztia bira egingo du, eta honako irudi hau ikusiko dugu fitxan:

Sekuentzia geldi dezakezu, hurrenez hurren, makroa exekutatuz Amaitu. Erosotasunerako, teklatuko lasterbideak esleitu ditzakezu bi makroei komandoa erabiliz Makroak - Aukerak fitxa developer (Garatzailea — Makroak — Aukerak).

Makro bat exekutatzen egutegi batean

Jakina, goian deskribatutako guztia posible da Microsoft Excel exekutatzen baduzu eta gure fitxategia bertan irekita badago. Ikus dezagun orain kasu konplikatuago bat: Excel programazio jakin baten arabera exekutatu behar duzu, adibidez, egunero 5:00etan, bertan txosten handi eta konplexu bat ireki eta bertan dauden konexio eta kontsulta guztiak eguneratu ahal izateko. lanera iristen garenerako prest egon 🙂

Egoera horretan, hobe da erabiltzea Windows Scheduler – Programazio batean zehaztutako ekintzak egin ditzakeen Windows-en edozein bertsiotan bereziki eraikitako programa. Izan ere, hori jakin gabe erabiltzen ari zara jada, zure ordenagailuak aldian-aldian eguneratzeak egiaztatzen dituelako, birusen aurkako datu-base berriak deskargatzen dituelako, hodeiko karpetak sinkronizatzen dituelako, etab. Planifikatzailearen lana da guztia. Beraz, gure zeregina lehendik dauden zereginei Excel abiaraziko duen beste bat gehitzea da eta bertan zehaztutako fitxategia irekiko duena. Eta gure makroa zintzilikatuko dugu ekitaldian Lan-koadernoa_Ireki fitxategi hau eta arazoa konpondu da.

Berehala ohartarazi nahi dizut Scheduler-ekin lan egiteak erabiltzaile-eskubide aurreratuak behar dituela; beraz, bulegoko laneko ordenagailuan behean deskribatzen diren komandoak eta funtzioak aurkitzen ez badituzu, jarri harremanetan zure informatikako espezialistekin laguntza eskatzeko.

Scheduler abiarazteko

Beraz, has gaitezen Scheduler-a. Horretarako, hauxe egin dezakezu:

  • Egin klik eskuineko botoian start eta aukeratu Ordenagailuen kudeaketa (Ordenagailuen kudeaketa)
  • Hautatu Kontrol Panelean: Administrazioa – Zereginen programatzailea (Kontrol panela — Administrazio-tresnak — Zereginen programatzailea)
  • Hautatu menu nagusitik Hasi – Osagarriak – Sistema-tresnak – Zereginen programatzailea
  • Sakatu teklatu lasterbidea Irabazi+R, sartu taskschd.msc eta prentsa Sartu

Pantailan hurrengo leihoa agertu behar da (ingelesezko bertsioa dut, baina bertsio bat ere izan dezakezu):

Makro bat garaiz exekutatzen

Zeregin bat sortu

Zeregin berri bat sortzeko urratsez urratseko morroi soil bat erabiliz, egin klik estekan Sortu zeregin sinple bat (Sortu oinarrizko zeregina) eskuineko panelean.

Morroiaren lehen urratsean, idatzi sortu nahi den zereginaren izena eta deskribapena:

Makro bat garaiz exekutatzen

Egin klik botoian hurrengo (Hurrengoa) eta hurrengo urratsean abiarazle bat hautatuko dugu - abiarazte-maiztasuna edo gure zeregina abiaraziko duen gertaera bat (adibidez, ordenagailua piztea):

Makro bat garaiz exekutatzen

Aukeratzen baduzu Eguneko (Egunero), ondoren hurrengo urratsean ordu zehatz bat, sekuentziaren hasiera-data eta urratsa hautatu beharko dituzu (2. egunean, 5. egunean, etab.):

Makro bat garaiz exekutatzen

Hurrengo urratsa ekintza bat aukeratzea da - Exekutatu programa (Hasi programa):

Makro bat garaiz exekutatzen

Eta, azkenik, interesgarriena zer ireki behar den da:

Makro bat garaiz exekutatzen

En Programa edo gidoia (Programa/gidoia) Microsoft Excel-erako bidea programa gisa sartu behar duzu, hau da, zuzenean Excel exekutagarrira. Windows eta Office-ren bertsio desberdinak dituzten ordenagailu desberdinetan, fitxategi hau karpeta ezberdinetan egon daiteke, beraz, hona hemen bere kokapena jakiteko modu batzuk:

  • Egin klik eskuineko botoiarekin ikonoan (lasterbidea) Excel mahaigainean edo ataza-barran abiarazteko eta hautatu komandoa Materialak (Propietateak), eta gero irekitzen den leihoan, kopiatu bidea lerrotik Target:

    Makro bat garaiz exekutatzen                      Makro bat garaiz exekutatzen

  • Ireki Excel-eko edozein lan-koadernoa eta ireki Zeregin kudeatzailea (Zereginen kudeatzailea) bultzaka Ctrl+Alt+aurrera eta lerroan eskuineko botoiarekin klik eginez Microsoft Excel, aukeratu komando bat Materialak (Propietateak). Irekitzen den leihoan, bidea kopiatu dezakezu, ahaztu gabe atzera-barra gehitzea eta amaieran EXCEL.EXE:

    Makro bat garaiz exekutatzen              Makro bat garaiz exekutatzen

  • Ireki Excel, ireki Visual Basic editorea teklatuko lasterbidearekin Alt+F11, panel irekia berehalako konbinazio bat Ctrl+G, sartu komandoa bertan:

    ? Aplikazioa.Ibilbidea

    … eta egin klik Sartu

    Makro bat garaiz exekutatzen

    Kopiatu ondoriozko bidea, ahaztu gabe atzera-barra gehitzea eta amaieran EXCEL.EXE.

En Gehitu argumentuak (aukerakoa) (Gehitu argumentuak (aukerakoa)) ireki nahi dugun makroarekin liburuaren bide osoa sartu behar duzu.

Dena sartzen denean, egin klik hurrengo eta gero Amaitu (Amaitu). Zerrenda orokorrean gehitu behar da zeregina:

Makro bat garaiz exekutatzen

Erosoa da sortutako zeregina eskuineko botoiak erabiliz kudeatzea. Hemen ataza probatu dezakezu berehala exekutatuz (Korrika egin)zehaztutako denborari itxaron gabe. Zeregin bat aldi baterako desaktibatu dezakezu (Desgaitu)horrela, denbora-tarte batean ibiltzeari utzi dio, zure oporretan adibidez. Tira, beti alda ditzakezu parametroak (datak, ordua, fitxategiaren izena) botoiaren bidez Materialak (Propietateak).

Gehitu makro bat fitxategi bat irekitzeko

Orain gure liburuan zintzilikatzeko geratzen da fitxategia irekiko gertaeran behar dugun makroaren abiarazpena. Horretarako, ireki liburua eta joan Visual Basic editorera teklatuko lasterbidea erabiliz Alt+F11 edo botoiak Visual Basic fitxa developer (Garatzailea). Goiko ezkerreko izkinan irekitzen den leihoan, gure fitxategia zuhaitzean aurkitu behar duzu eta egin klik bikoitza modulua irekitzeko. Liburu hau (Lan-koaderno hau).

Leiho hau Visual Basic editorean ikusten ez baduzu, menuaren bidez ireki dezakezu Ikusi — Project Explorer.

Irekitzen den modulu-leihoan, gehitu liburu irekiko gertaeren kudeatzailea goiko goitibeherako zerrendetatik hautatuta Workbook и Irekihurrenez hurren:

Makro bat garaiz exekutatzen

Prozedura txantiloia agertu behar da pantailan. Lan-koadernoa_Ireki, non lerro artean Azpi pribatua и Amaiera Sub eta Excel lan-koaderno hau irekitzen denean automatikoki exekutatu behar diren VBA komando horiek txertatu behar dituzu, Planifikatzaileak programazioaren arabera irekitzen duenean. Hona hemen overclocking egiteko aukera erabilgarriak:

  • Lan-koaderno hau.FreshAll – Kanpoko datuen kontsulta guztiak, Power Query kontsultak eta taula dinamikoak freskatzen ditu. Aukera polifazetikoa. Ez ahaztu kanpoko datuetarako konexioak lehenespenez baimentzea eta estekak honen bidez eguneratzea Fitxategia – Aukerak – Trust Center – Trust Center Aukerak – Kanpoko edukia, bestela, liburua irekitzean, abisu estandar bat agertuko da eta Excel-ek, ezer eguneratu gabe, zure bedeinkapenaren zain egongo da botoian klik eginez. Gaitu edukia (Gaitu edukia):

    Makro bat garaiz exekutatzen

  • ActiveWorkbook.Connections ("Konexio_izena"). Freskatu — Connection_Name konexioaren datuak eguneratzea.
  • Fitxak ("Fitxa5“).Taula dinamikoak(“Taula dinamikoa1«).PivotCache.Freskatu – izeneko taula dinamiko bakarra eguneratzea Taula dinamikoa 1 fitxan Sheet5.
  • Aplikazioa.Kalkulatu – Irekitako Excel lan-koaderno guztien birkalkulua.
  • Aplikazioa.CalculateFullBerreraiki – formula guztien birkalkulua behartu eta gelaxken arteko menpekotasun guztiak berreraikitzea irekitako lan-liburu guztietan (formula guztiak berriro sartzearen baliokidea).
  • Lan-orriak(“Txostena”).Inprimatu – inprimatu orria pics.
  • Deitu MyMacro - exekutatu izeneko makro bat Nire makroa.
  • Lan-koaderno hau.Gorde - gorde uneko liburua
  • Lan-koaderno hau. Gorde "D:Artxibo txostena" gisa eta Ordezkatu (Orain, ":", "-") & ".xlsx" - gorde liburua karpeta batean D: Artxiboa izenpean pics izenari data eta ordua erantsita.

Planifikatzaileak fitxategia goizeko 5:00etan irekitzen duenean bakarrik exekutatu nahi baduzu makroa, eta ez erabiltzaileak lan-liburua lanegunetan irekitzen duen bakoitzean, zentzuzkoa da denbora egiaztapena gehitzea, adibidez:

Formatua (Orain, "hh:mm") = "05:00" bada, Lan-koaderno hau. RefreshAll  

Hori da dena. Ez ahaztu zure lan-liburua makro-gaitutako formatuan gordetzea (xlsm edo xlsb) eta segurtasunez Excel itxi dezakezu eta etxera joan zaitezke ordenagailua piztuta utzita. Une jakin batean (nahiz eta ordenagailua blokeatuta egon), Scheduler-ek Excel abiaraziko du eta bertan zehaztutako fitxategia irekiko du, eta gure makroak programatutako ekintzak egingo ditu. Eta ohean luxu egingo zara zure txosten astuna automatikoki berriro kalkulatzen den bitartean - edertasuna! 🙂

  • Zer dira makroak, nola erabili, non txertatu Visual Basic kodea Excel-en
  • Nola sortu zure makro gehigarria Excel-erako
  • Nola erabili Macro Lan-koaderno pertsonala zure makroetarako liburutegi gisa Excel-en

Utzi erantzun bat