Макросты уақытында іске қосу

Іс жүзінде өте жиі кездесетін жағдай: белгілі бір уақытта немесе белгілі бір жиілікте макростарыңыздың біреуін немесе бірнешеуін іске қосу керек. Мысалы, сізде жарты сағатта жаңартылатын үлкен және ауыр есеп бар және сіз таңертең жұмысқа келуден жарты сағат бұрын жаңартуды іске қосқыңыз келеді. Немесе сізде белгіленген жиілікте қызметкерлерге электрондық хаттарды автоматты түрде жіберуі керек макрос бар. Немесе жиынтық кестемен жұмыс істегенде, оның әр 10 секунд сайын жылдам жаңартылғанын қалайсыз және т.б.

Excel және Windows жүйесінде мұны жүзеге асыру мүмкіндігі бар екенін қарастырайық.

Берілген жиілікте макросты іске қосу

Мұны істеудің ең оңай жолы - кірістірілген VBA әдісін пайдалану Application.OnTimeБелгіленген уақытта көрсетілген макросты іске қосатын. Мұны практикалық мысалмен түсінейік.

Visual Basic редакторын қойындыдағы аттас түймемен ашыңыз әзірлеуші (Әзірлеуші) немесе пернелер тіркесімі Alt+F11, мәзір арқылы жаңа модульді кірістіріңіз Кірістіру – модуль және сол жерге келесі кодты көшіріңіз:

Dim TimeToRun 'келесі орындалу уақыты сақталатын жаһандық айнымалы 'бұл негізгі макрос Sub MyMacro() Application.Calculate 'кітапты қайта есептеу диапазоны("A1").Interior.ColorIndex = Int(Rnd() * 56) 'толтыру кездейсоқ түспен A1 ұяшығы :) Келесі орындалу уақытын орнату үшін NextRun макросын іске қосыңыз. 00:00") 'ағымдағы уақытқа 03 секунд қосыңыз Application.OnTime TimeToRun, "MyMacro" 'келесі іске қосуды жоспарлау End Sub 'макрос қайталау ретін бастау үшін Sub Start() Қайталау ретін тоқтату үшін NextRun End Sub 'макросына қоңырау шалыңыз Sub Finish() Application.OnTime TimeToRun, "MyMacro", , False End Sub  

Мұнда не бар екенін анықтайық.

Біріншіден, бізге макростың келесі іске қосылу уақытын сақтайтын айнымалы керек - мен оны шақырдым Орындалу уақыты. Бұл айнымалының мазмұны біздің барлық кейінгі макростарымыз үшін қолжетімді болуы керек екенін ескеріңіз, сондықтан оны жасауымыз керек. ғаламдық, яғни модульдің ең басында біріншіден бұрын жариялаңыз Sub.

Келесі біздің негізгі макрос MyMacro, ол негізгі тапсырманы орындайды – әдіс арқылы кітапты қайта есептеу Қолдану. Есептеу. Түсінікті болу үшін мен A1 ұяшығындағы параққа =TDATE() формуласын қостым, онда күн мен уақыт көрсетіледі – қайта есептегенде оның мазмұны біздің көз алдымызда жаңартылады (ұяшықтағы секундтарды көрсетуді қосыңыз пішімі). Қосымша көңіл көтеру үшін мен макросқа A1 ұяшығын кездейсоқ таңдалған түспен толтыру пәрменін қостым (түс коды функция арқылы жасалатын 0..56 ауқымындағы бүтін сан болып табылады. Rnd және бүтін функцияға дейін дөңгелектейді Int).

Макро NextRun алдыңғы мәнге қосады Орындалу уақыты тағы 3 секунд, содан кейін негізгі макростың келесі іске қосылуын жоспарлайды MyMacro осы жаңа уақыт үшін. Әрине, іс жүзінде функция аргументтерін орнату арқылы сізге қажет кез келген басқа уақыт аралығын пайдалануға болады Уақыт мәні сағ:мм:сс форматында.

Ақырында, ыңғайлы болу үшін көбірек іске қосу макростары қосылды. Home және оның аяқталуы Аяқтау. Соңғысы реттілікті бұзу үшін төртінші әдіс аргументін пайдаланады. Уақытында тең жалған.

Макросты іске қоссаңыз, барлығы Home, содан кейін бұл бүкіл карусель айналады және біз парақта келесі суретті көреміз:

Сәйкесінше макросты іске қосу арқылы тізбекті тоқтатуға болады Аяқтау. Ыңғайлы болу үшін пәрменді пайдаланып екі макросқа пернелер тіркесімін тағайындауға болады Макростар – Параметрлер қойындысы әзірлеуші (Әзірлеуші ​​— Макростар — Параметрлер).

Кесте бойынша макросты іске қосу

Әрине, жоғарыда сипатталғанның бәрі сізде Microsoft Excel бағдарламасы жұмыс істеп тұрған кезде және біздің файлымыз ашық болса ғана мүмкін болады. Енді күрделірек жағдайды қарастырайық: Excel бағдарламасын берілген кесте бойынша, мысалы, күн сайын сағат 5:00-де іске қосу керек, ондағы үлкен және күрделі есепті ашып, ондағы барлық қосылымдар мен сұрауларды жаңартып отыру керек. біз жұмысқа келгенше дайын бол 🙂

Мұндай жағдайда оны қолданған дұрыс Windows жоспарлағышы – кесте бойынша көрсетілген әрекеттерді орындай алатын Windows жүйесінің кез келген нұсқасына арнайы енгізілген бағдарлама. Шындығында, сіз оны білмей пайдаланып жатырсыз, өйткені сіздің компьютеріңіз жаңартуларды үнемі тексереді, жаңа антивирустық дерекқорларды жүктеп алады, бұлттық қалталарды синхрондайды және т.б. Мұның бәрі Жоспарлағыштың жұмысы. Сонымен, біздің міндетіміз - Excel бағдарламасын іске қосатын және ондағы көрсетілген файлды ашатын бар тапсырмаларға басқасын қосу. Біз макросымызды оқиғаға іліп қоямыз Жұмыс кітабы_Ашық бұл файл – және мәселе шешілді.

Жоспарлағышпен жұмыс істеу үшін қосымша пайдаланушы құқықтары қажет болуы мүмкін екенін бірден ескерткім келеді, сондықтан төменде сипатталған пәрмендер мен функцияларды кеңседе жұмыс компьютеріңізден таба алмасаңыз, көмек алу үшін АТ мамандарына хабарласыңыз.

Жоспарлағышты іске қосу

Ендеше Жоспарлағышты бастайық. Мұны істеу үшін сіз:

  • Түймені тінтуірдің оң жақ түймешігімен басыңыз бастау және таңдаңыз Компьютермен басқару (Компьютерді басқару)
  • Басқару тақтасында таңдаңыз: Әкімшілік – Тапсырмаларды жоспарлаушы (Басқару тақтасы — Әкімшілік құралдар — Тапсырмаларды жоспарлаушы)
  • Негізгі мәзірден таңдаңыз Бастау - Керек-жарақтар - Жүйе құралдары - Тапсырмаларды жоспарлаушы
  • Пернелер тіркесімін басыңыз Жеңу+R, енгізіңіз taskschd.msc және баспасөз кіру

Экранда келесі терезе пайда болуы керек (менде ағылшын тіліндегі нұсқасы бар, бірақ сізде де нұсқасы болуы мүмкін):

Макросты уақытында іске қосу

Тапсырма жасаңыз

Қарапайым қадамдық шеберді пайдаланып жаңа тапсырма жасау үшін сілтемені басыңыз Қарапайым тапсырма жасаңыз (Негізгі тапсырманы құру) оң жақ панельде.

Шебердің бірінші қадамында жасалатын тапсырманың атын және сипаттамасын енгізіңіз:

Макросты уақытында іске қосу

Түймесін басыңыз Келесі (Келесі) және келесі қадамда біз триггерді таңдаймыз – іске қосу жиілігі немесе тапсырмамызды іске қосатын оқиға (мысалы, компьютерді қосу):

Макросты уақытында іске қосу

Егер сіз таңдаған болсаңыз күн сайын (Күн сайын), содан кейін келесі қадамда белгілі бір уақытты, реттілік пен қадамның басталу күнін таңдау керек (әрбір 2-ші, 5-ші күн және т.б.):

Макросты уақытында іске қосу

Келесі қадам әрекетті таңдау болып табылады - Бағдарламаны іске қосыңыз (Бағдарламаны бастау):

Макросты уақытында іске қосу

Ақырында, ең қызықтысы - дәл нені ашу керек:

Макросты уақытында іске қосу

Ішінде Бағдарлама немесе сценарий (Бағдарлама/скрипт) Microsoft Excel бағдарламасына, яғни тікелей Excel орындалатын файлына жолды енгізу керек. Windows және Office жүйесінің әртүрлі нұсқалары бар әртүрлі компьютерлерде бұл файл әртүрлі қалталарда болуы мүмкін, сондықтан оның орнын анықтаудың бірнеше жолы бар:

  • Excel бағдарламасын жұмыс үстелінде немесе тапсырмалар тақтасында іске қосу үшін белгішені (жарлық) тінтуірдің оң жақ түймешігімен басып, пәрменді таңдаңыз. материалдар (Сипаттар), содан кейін ашылатын терезеде жолды жолдан көшіріңіз нысана:

    Макросты уақытында іске қосу                      Макросты уақытында іске қосу

  • Кез келген Excel жұмыс кітабын ашыңыз, содан кейін ашыңыз Тапсырмалар менеджері (Тапсырмалар менеджері) басу Ctrl+Alt+-дан және жолды тінтуірдің оң жақ түймешігімен басу арқылы Microsoft Excel, пәрменді таңдаңыз материалдар (Сипаттар). Ашылған терезеде жолды көшіруге болады, оған кері қиғаш сызықты және соңында EXCEL.EXE қосуды ұмытпаңыз:

    Макросты уақытында іске қосу              Макросты уақытында іске қосу

  • Excel бағдарламасын ашыңыз, пернелер тіркесімі бар Visual Basic редакторын ашыңыз Alt+F11, панельді ашыңыз Дереу комбинациясы Ctrl+G, оған пәрменді енгізіңіз:

    ? Application.Path

    … және түймесін басыңыз кіру

    Макросты уақытында іске қосу

    Алынған жолды көшіріңіз, оған кері қиғаш сызықты және соңында EXCEL.EXE қосуды ұмытпаңыз.

Ішінде Аргументтерді қосу (міндетті емес) (Аргументтер қосу (міндетті емес)) біз ашқымыз келетін макроспен кітапқа толық жолды енгізуіңіз керек.

Барлығы енгізілгеннен кейін түймесін басыңыз Келесі содан соң Аяқтау (Аяқтау). Тапсырма жалпы тізімге қосылуы керек:

Макросты уақытында іске қосу

Жасалған тапсырманы оң жақтағы түймелер арқылы басқару ыңғайлы. Мұнда тапсырманы бірден іске қосу арқылы тексеруге болады (жүгіру)көрсетілген уақытты күтпестен. Тапсырманы уақытша өшіруге болады (Өшіру)осылайша ол сіздің демалысыңыз сияқты белгілі бір уақытқа жұмысын тоқтатады. Сіз әрқашан түйме арқылы параметрлерді (күндер, уақыт, файл атауы) өзгерте аласыз материалдар (Сипаттар).

Файлды ашу үшін макрос қосыңыз

Енді файлды ашу оқиғасында бізге қажет макросты іске қосу кітабына ілу қалды. Ол үшін кітапты ашып, пернелер тіркесімін пайдаланып Visual Basic редакторына өтіңіз Alt+F11 немесе түймелер Visual Basic қойындысы әзірлеуші (Әзірлеуші). Жоғарғы сол жақ бұрышта ашылатын терезеде ағаштан біздің файлды тауып, модульді ашу үшін екі рет басу керек. Бұл кітап (Бұл жұмыс дәптері).

Бұл терезені Visual Basic редакторында көрмесеңіз, оны мәзір арқылы ашуға болады Көрініс - Project Explorer.

Ашылатын модуль терезесінде жоғарғы жағындағы ашылмалы тізімдерден таңдау арқылы кітапты ашу оқиғасының өңдеушісін қосыңыз. Жұмыс кітабы и ашықсәйкесінше:

Макросты уақытында іске қосу

Экранда процедура үлгісі пайда болуы керек. Жұмыс кітабы_Ашық, жолдар арасында Жеке қосалқы и End Sub және осы Excel жұмыс кітабы ашылғанда, Жоспарлағыш оны кестеге сәйкес ашқанда автоматты түрде орындалатын VBA пәрмендерін енгізу керек. Мұнда үдеткіштің кейбір пайдалы нұсқалары берілген:

  • This Workbook.RefreshAll – Барлық сыртқы деректер сұрауларын, Power Query сұрауларын және жиынтық кестелерді жаңартады. Ең әмбебап нұсқа. Әдепкі бойынша сыртқы деректерге қосылуға рұқсат беруді және сілтемелерді жаңартуды ұмытпаңыз Файл – Параметрлер – Сенім орталығы – Сенім орталығының параметрлері – Сыртқы мазмұн, әйтпесе, кітапты ашқан кезде стандартты ескерту пайда болады және Excel ештеңені жаңартпай, түймені басу түрінде сіздің батаңызды күтеді. Мазмұнды қосыңыз (Мазмұнды қосу):

    Макросты уақытында іске қосу

  • ActiveWorkbook.Connections(“Connection_Name”).Жаңарту — Connection_Name қосылымындағы деректерді жаңарту.
  • Парақтар («парақ 5").Жиынтық кестелер("Жиынтық кесте 1«).PivotCache.Жаңарту – аталған жалғыз жиынтық кестені жаңарту Жиынтық кесте 1 парақта Парақ5.
  • Қолдану. Есептеу – барлық ашық Excel жұмыс кітаптарын қайта есептеу.
  • Application.CalculateFullRebuild – барлық формулаларды мәжбүрлі түрде қайта есептеу және барлық ашық жұмыс кітаптарындағы ұяшықтар арасындағы барлық тәуелділіктерді қайта құру (барлық формулаларды қайта енгізуге тең).
  • Жұмыс парақтары («Есеп»).PrintOut – басып шығару парағы фотосуреттер.
  • MyMacro-ға қоңырау шалыңыз – атты макросты іске қосыңыз MyMacro.
  • Бұл жұмыс кітабы. Сақтау – ағымдағы кітапты сақтаңыз
  • ThisWorkbooks.SaveAs “D:ArchiveReport” & Ауыстыру(Қазір, “:”, “-“) & “.xlsx” – кітапты қалтаға сақтаңыз D: Мұрағат атымен фотосуреттер атауына күні мен уақыты қоса беріледі.

Егер сіз макростың файлды Жоспарлағышпен таңғы 5:00-де ашқан кезде ғана орындалуын қаласаңыз және пайдаланушы жұмыс күні ішінде жұмыс кітабын ашқан сайын емес, уақытты тексеруді қосқан дұрыс, мысалы:

Пішім(Қазір, "сағ:мм") = "05:00" болса, ThisWorkbook.RefreshAll  

Бар болғаны. Жұмыс кітабын макрос қосылған пішімде (xlsm немесе xlsb) сақтауды ұмытпаңыз, сонда сіз Excel бағдарламасын қауіпсіз жауып, компьютеріңізді қосулы қалдырып, үйге бара аласыз. Белгілі бір сәтте (ДК құлыптаулы болса да) Жоспарлағыш Excel бағдарламасын іске қосып, ондағы көрсетілген файлды ашады, ал біздің макрос бағдарламаланған әрекеттерді орындайды. Ауыр есеп автоматты түрде қайта есептеліп жатқанда, сіз төсекте рахаттанып кетесіз – сұлулық! 🙂

  • Макростар дегеніміз не, оларды қалай қолдану керек, Excel бағдарламасында Visual Basic кодын қайда енгізу керек
  • Excel бағдарламасына жеке макрос қондырмасын қалай жасауға болады
  • Жеке макрос жұмыс кітабын Excel бағдарламасындағы макростарыңыз үшін кітапхана ретінде пайдалану жолы

пікір қалдыру