Како снимити макро у Екцелу

  • Деле Ово
Michael Brown

Упутство корак по корак за почетнике за снимање, преглед, покретање и чување макроа. Такође ћете научити неке унутрашње механике како макрои функционишу у Екцел-у.

Макрои су одличан начин за аутоматизацију задатака који се понављају у Екцел-у. Ако нађете да радите исте ствари изнова и изнова, снимите своје потезе као макро и доделите му пречицу на тастатури. А сада, све снимљене радње можете извршити аутоматски, једним притиском на тастер!

    Како снимити макро у Екцел-у

    Као и друге ВБА алатке, Екцел макрои налазе се на картици Програмер , која је подразумевано скривена. Дакле, прва ствар коју треба да урадите је да додате картицу Девелопер на вашу Екцел траку.

    Да бисте снимили макро у Екцел-у, извршите ове кораке:

    1. На <1 На картици>Развојник , у групи Код , кликните на дугме Сними макро .

      Алтернативно, кликните на Сними Дугме Макро на левој страни траке Статус :

      Ако више волите да радите са тастатуром, а не мишем, притисните следеће секвенца тастера Алт, Л, Р (један по један, не сви тастери одједном).

    2. У дијалогу Сними макро који се појави, конфигуришите главне параметре свог макроа:
      • У Макро име , унесите име за свој макро. Покушајте да га учините смисленим и описним, тако да ћете касније моћи брзо да пронађете макро на листи.

        Уштеди вам много времена и живаца чинећи вашу криву учења глаткијом, а макрое ефикаснијим.

        Користите релативне референце за снимање макроа

        Подразумевано, Екцел користи апсолутно референцирање за снимање макроа. То значи да ће се ваш ВБА код увек односити на потпуно исте ћелије које сте изабрали, без обзира где се налазите на радном листу када покрећете макро.

        Међутим, могуће је променити подразумевано понашање у релативно референцирање . У овом случају, ВБА неће чврсто кодирати адресе ћелија, али ће радити у односу на активну (тренутно изабрану) ћелију.

        Да бисте снимили макро са релативним референцама, кликните на Користи <8 Дугме>Релативне референце на картици Програмер . Да бисте се вратили на апсолутно референцирање, поново кликните на дугме да бисте га искључили.

        На пример, ако снимите постављање табеле са подразумеваним апсолутним референцама, ваш макро ће увек поново креирајте табелу на истом месту (у овом случају, Хеадер у А1, Итем1 у А2, Итем2 у А3).

        Суб Абсолуте_Референцинг() Опсег( "А1" ). Изаберите АцтивеЦелл.ФормулаР1Ц1 = Опсег "Хеадер" ( "А2" ). Изаберите АцтивеЦелл.ФормулаР1Ц1 = Опсег "Итем1" ( "А3" ). Изаберите АцтивеЦелл.ФормулаР1Ц1 = "Итем2" Енд Суб

        Ако снимите исти макро са релативним референцама, табела ће бити креирана где год да поставите курсор пре покретања макроа ( Хеадер уактивна ћелија, Итем1 у доњој ћелији, и тако даље).

        СубРелативе_Референцинг() АцтивеЦелл.ФормулаР1Ц1 = "Хеадер" АцтивеЦелл.Оффсет(1, 0).Ранге( "А1" ). Изаберите АцтивеЦелл.ФормулаР1Ц1 = "Итем1" АцтивеЦелл.Оффсет(1, 0).Ранге( "А1" ). Изаберите АцтивеЦелл.ФормулаР1Ц1 = "Итем2" АцтивеЦелл.Оффсет(1, 0).Ранге( "А1" ). Изаберите Енд Суб

        Напомене:

        • Када користите релативне референце, обавезно изаберите почетну ћелију пре него што почнете да снимате макро.
        • Релативно референцирање не функционише за све. Неке функције Екцел-а, нпр. конвертовање опсега у табелу, захтевају апсолутне референце.

        Изаберите опсеге помоћу пречица на тастатури

        Када изаберете ћелију или опсег ћелија помоћу миша или тастера са стрелицама, Екцел уписује адресе ћелија. Сходно томе, кад год покренете макро, снимљене операције ће се извршити тачно на истим ћелијама. Ако ово није оно што желите, користите пречице за избор ћелија и опсега.

        Као пример, снимимо макро који поставља одређени формат (д-ммм-ии) за датуме у табели испод:

        За ово снимате следеће операције: притисните Цтрл + 1 да бисте отворили дијалог Формат ћелије &гт; Датум &гт; изаберите формат &гт; У РЕДУ. Ако ваш снимак укључује избор опсега помоћу миша или тастера са стрелицама, Екцел ће произвести следећи ВБА код:

        Суб Дате_Формат() Ранге( "А2:Б4" ). ИзаберитеСелецтион.НумберФормат = "д-ммм-ии" Енд Суб

        Покретање горњег макроа би сваки пут изабрало опсег А2:Б4. Ако додате још неколико редова у своју табелу, макро их неће обрадити.

        Сада, да видимо шта се дешава када изаберете табелу помоћу пречице.

        Поставите курсор у горњој левој ћелији циљног опсега (А2 у овом примеру), почните да снимате и притисните Цтрл + Схифт + Енд . Као резултат, први ред кода ће изгледати овако:

        Опсег(Избор, АцтивеЦелл.СпециалЦеллс(клЛастЦелл)). Изаберите

        Овај код бира све ћелије од активне ћелије до последње коришћене ћелије, што значи да ће сви нови подаци бити аутоматски укључени у избор.

        Алтернативно, можете користити комбинације Цтрл + Схифт + стрелице:

        • Цтрл + Схифт + стрелица надесно да изаберете све коришћене ћелије удесно, а затим
        • Цтрл + Схифт + стрелица надоле да изаберете све коришћене ћелије надоле.

        Ово ће генерисати две линије кода уместо једне, али резултат ће бити исти - све ћелије са подацима доле и десно од активне ћелије биће изабране:

        Опсег(Избор, Избор. Крај ( клТоРигхт)). Изаберите Опсег (Избор, Избор. Крај (клДовн)). Изаберите

        Сними макро за избор, а не одређене ћелије

        Наведени метод (тј. одабир свих коришћених ћелија почевши од активне ћелије) одлично функционише за обављање истих операција на целој табели. У некимУ ситуацијама, међутим, можда ћете желети да макро обрађује одређени опсег, а не целу табелу.

        За ово, ВБА обезбеђује објекат Избор који се односи на тренутно изабране ћелије . Већина ствари које се могу урадити са опсегом могу се урадити и селекцијом. Какву вам то предност даје? У многим случајевима, не морате уопште ништа да изаберете током снимања - само напишите макро за активну ћелију. А затим, изаберите било који опсег који желите, покрените макро и он ће манипулисати читавим избором.

        На пример, овај једнолинијски макро може да форматира било који број изабраних ћелија као проценте:

        Подпроцентни_формат () Селецтион.НумберФормат = "0.00%" Енд Суб

        Пажљиво планирајте шта снимате

        Мицрософт Екцел Мацро Рецордер бележи скоро све ваше активности, укључујући грешке које правите и исправљате. На пример, ако притиснете Цтрл + З да нешто поништите, то ће такође бити снимљено. На крају, можете завршити са много непотребног кода. Да бисте то избегли, или уредите код у ВБ Едитору или зауставите снимање, избришите неисправан макро и почните да снимате изнова.

        Направите резервну копију или сачувајте радну свеску пре покретања макроа

        Резултат Екцел-а макрои се не могу опозвати. Дакле, пре првог покретања макроа, има смисла направити копију радне свеске или барем сачувати свој тренутни рад да бисте спречили неочекиване промене. Ако макро уради нешто погрешно,једноставно затворите радну свеску без чувања.

        Нека снимљени макрои буду кратки

        Када аутоматизујете низ различитих задатака, можда ћете бити у искушењу да их све снимите у једном макроу. Постоје два главна разлога да то не урадите. Прво, тешко је глатко снимити дугачак макро без грешака. Друго, велике макрое је тешко разумети, тестирати и отклонити. Због тога је добра идеја поделити велики макро на неколико делова. На пример, када креирате табелу са резимеом из више извора, можете да користите један макро за увоз информација, други за консолидацију података, а трећи за форматирање табеле.

        Надам се да вам је овај водич дао увид о томе како снимити макро у Екцел-у. У сваком случају, захваљујем се на читању и надам се да ћемо се следеће недеље видети на нашем блогу!

        имена макроа, можете користити слова, бројеве и доње црте; први знак мора бити слово. Размаци нису дозвољени, па би требало да име задржите једнослово које почиње сваки део великим словом (нпр. Мој првимакро ) или одвојене речи са доњом цртом (нпр. Мој_први_макро ).
      • У пољу Тастер пречице унесите било које слово да доделите пречицу на тастатури макроу (опционо).

        Дозвољена су и велика и мала слова, али би било паметно да користите велике комбинације тастера ( Цтрл + Схифт + слово ) јер пречице макроа замењују све подразумеване Екцел пречице док је радна свеска која садржи макро отворена. На пример, ако доделите Цтрл + С макроу, изгубићете могућност да сачувате своје Екцел датотеке помоћу пречице. Додељивањем Цтрл + Схифт + С задржаће се стандардна пречица за чување.

      • Са падајуће листе Сачувај макро у изаберите где желите да сачувате свој макро:
        • Персонал Мацро Воркбоок – складишти макро у посебну радну свеску под називом Персонал.клсб . Сви макрои ускладиштени у овој радној свесци доступни су кад год користите Екцел.
        • Ова радна свеска (подразумевано) – макро ће бити сачуван у тренутној радној свесци и биће доступан када поново отворите радну свеску или је поделите са другим корисницима.
        • Нова радна свеска – креира нову радну свеску и бележи макро у ту радну свеску.
      • УУ поље Опис унесите кратак опис онога што ваш макро ради (опционално).

        Иако ово поље није обавезно, препоручио бих вам да увек наведете кратак опис. Када креирате много различитих макроа, то ће вам помоћи да брзо разумете шта сваки макро ради.

      • Кликните на ОК да бисте започели снимање макроа.

    3. Извршите радње које желите да аутоматизујете (погледајте пример макроа за снимање).
    4. Када завршите, кликните на дугме Заустави снимање на картици Развојник :

      Или аналогно дугме на Статус траци:

    Пример снимања макроа у Екцел-у

    Да бисмо видели како то функционише у пракси, снимимо макро који примењује неко форматирање на изабране ћелије. За ово урадите следеће:

    1. Изаберите једну или више ћелија које желите да форматирате.
    2. На картици Програмер или Статус траку, кликните на Сними макро .
    3. У дијалошком оквиру Сними макро , конфигуришите следећа подешавања:
      • Именујте макро Формат_заглавља (јер ћемо форматирати заглавља колона).
      • Поставите курсор у оквир Тастер пречице и истовремено притисните тастере Схифт + Ф. Ово ће макроу доделити пречицу Цтрл + Схифт + Ф.
      • Одаберите да сачувате макро у овој радној свесци.
      • За Опис користите следећи текст који објашњава шта макро ради: Подебљава текст, додаје боју попуне и центрира .
      • Кликните на ОК да бисте започели снимање.

    4. Форматирајте унапред изабране ћелије онако како желите. За овај пример користимо подебљано обликовање текста, светло плаву боју испуне и поравнање по средини.

      Савет. Немојте бирати ћелије након што почнете да снимате макро. Ово ће осигурати да се сво форматирање примењује на избор , а не на одређени опсег.

    5. Кликните на Заустави снимање на картици Развојник или на траци Статус .

    То је то! Ваш макро је снимљен. Сада можете да изаберете било који опсег ћелија на било ком листу, притиснете додељену пречицу ( Цтрл+ Схифт + Ф) и ваше прилагођено обликовање ће се одмах применити на изабране ћелије.

    Како радити са снимљеним макроима у Екцел-у

    Свим главним опцијама које Екцел нуди за макрое може се приступити преко Макро оквира за дијалог. Да бисте га отворили, кликните на дугме Мацрос на картици Девелопер или притисните пречицу Алт+ Ф8.

    У дијалогу који се отвори, можете да видите листу макроа доступних у свим отвореним радним свескама или повезаних са одређеном радном свеском и користите следеће опције:

    • Покрени - извршава изабрани макро .
    • Степ инто - омогућава вам да отклоните грешке и тестирате макро у Висуал Басиц Едитор-у.
    • Едит - отвара изабрани макро уВБА Едитор, где можете да прегледате и измените код.
    • Избриши - трајно брише изабрани макро.
    • Опције – омогућава промену својства макроа као што су повезани пречица тастер и опис .

    Како погледати макрои у Екцел-у

    Код Екцел макроа се може видети и изменити у Висуал Басиц Едитору. Да бисте отворили уређивач, притисните Алт + Ф11 или кликните на дугме Висуал Басиц на картици Девелопер .

    Ако видите ВБ Едитор по први пут, немојте се осећати обесхрабрено или застрашено. Нећемо говорити о структури или синтакси ВБА језика. Овај одељак ће вам само дати основно разумевање како функционишу Екцел макрои и шта снимање макроа заправо ради.

    ВБА Едитор има неколико прозора, али ћемо се фокусирати на два главна:

    Пројецт Екплорер - приказује листу свих отворених радних књига и њихових листова. Поред тога, приказује модуле, корисничке обрасце и модуле класа.

    Прозор кода - овде можете да видите, уредите и пишете ВБА код за сваки објекат приказан у Пројецт Екплорер-у.

    Када смо снимили узорак макроа, следеће ствари су се десиле у позадини:

    • Нови модул ( Модуел1 ) је био уметнуто.
    • ВБА код макроа је написан у прозору Цоде.

    Да бисте видели код одређеногмодула, двапут кликните на модул ( Модул1 у нашем случају) у прозору Пројецт Екплорер. Обично код макроа има ове делове:

    Име макроа

    У ВБА, сваки макро почиње са Суб праћен именом макроа и завршава се са Енд Суб , где је "Суб" скраћеница за Подпрограм (такође се назива Процедура ). Наш узорак макроа се зове Хеадер_Форматтинг() , тако да код почиње овим редом:

    Суб Хеадер_Форматтинг()

    Ако желите преименовати макро , једноставно обришите тренутно име и укуцајте ново директно у прозор кода.

    Коментари

    Линије са префиксом апострофа (') и које су подразумевано приказане зеленом бојом се не извршавају. Ово су коментари додати у информативне сврхе. Редови коментара се могу безбедно уклонити без утицаја на функционалност кода.

    Обично снимљени макро има 1 - 3 реда коментара: име макроа (обавезно); опис и пречица (ако је наведено пре снимања).

    Извршни код

    После коментара долази код који извршава радње које сте снимили. Понекад снимљени макро може имати много сувишног кода, који би ипак могао бити користан за откривање како ствари функционишу са ВБА :)

    Слика испод показује шта ради сваки део кода нашег макроа:

    Како покренути снимљени макро

    Покретањем макроа, кажете Екцел-у да се врати на снимљени ВБА код и извршипотпуно исти кораци. Постоји неколико начина да покренете снимљени макро у Екцел-у, а ево и најбржих:

    • Ако сте макроу доделили пречицу на тастатури , притисните ту пречицу .
    • Притисните Алт + 8 или кликните на дугме Макрос на картици Програмер . У дијалогу Макро изаберите жељени макро и кликните на Покрени .

    Такође је могуће покренути снимљени макро кликом на сопствено дугме. Ево корака да направите један: Како да направите дугме макроа у Екцел-у.

    Како да сачувате макрое у Екцел-у

    Било да сте снимили макро или ручно написали ВБА код, да бисте сачували макро , морате да сачувате радну свеску са омогућеним макроом (.клмс екстензија). Ево како:

    1. У радној свесци која садржи макро, кликните на дугме Сачувај или притисните Цтрл + С .
    2. У Сачувај као дијалог, изаберите Екцел Мацро-Енаблед Воркбоок (*.клсм) са падајуће листе Сачувај као тип , а затим кликните на Сачувај :

    Екцел макрои: шта се снима, а шта није

    Као што сте управо видели, прилично је лако снимити макро у Екцел-у. Али да бисте креирали ефикасне макрое, морате да разумете шта се дешава иза сцене.

    Шта се снима

    Екцелов Мацро Рецордер бележи прилично много ствари – скоро све кликове мишем и притиске тастера. Дакле, требало би пажљиво да размислите о својим корацима како бисте избегли вишак кода који можерезултирати неочекиваним понашањем вашег макроа. Испод је неколико примера онога што Екцел бележи:

    • Бирање ћелија помоћу миша или тастатуре. Само последњи избор пре акције се снима. На пример, ако изаберете опсег А1:А10, а затим кликнете на ћелију А11, биће забележен само избор А11.
    • Форматирање ћелије као што је боја попуне и фонта, поравнање, ивице, итд.
    • Форматирање бројева као што су проценат, валута итд.
    • Уређивање формула и вредности. Промене се бележе након што притиснете Ентер .
    • Померање, померање Екцел прозора, прелазак на друге радне листове и радне свеске.
    • Додавање, именовање, премештање и брисање радних листова.
    • Креирање, отварање и чување радних свеска.
    • Покретање других макроа.

    Шта се не може снимити

    Упркос много различитих ствари које Екцел може да сними, одређене функције су изван могућности Макро снимач:

    • Прилагођавања Екцел траке и траке са алаткама за брзи приступ.
    • Радње унутар Екцел дијалога као што су Условно форматирање или Пронађи и замени (снима се само резултат).
    • Интеракције са другим програмима. На пример, не можете да снимите копирање/пестовање из Екцел радне свеске у Ворд документ.
    • Све што укључује ВБА уређивач. Ово намеће најзначајнија ограничења – многе ствари које се могу урадити на нивоу програмирања не могубити снимљени:
      • Креирање прилагођених функција
      • Приказивање прилагођених дијалошких оквира
      • Прављење петљи као што су За следеће , За сваки , Ради док , итд.
      • Процена услова. У ВБА, можете да користите наредбу ИФ Тхен Елсе да тестирате услов и покренете неки код ако је услов тачан или други код ако је услов нетачан.
      • Извршавање кода на основу догађаја . Са ВБА, можете да користите многе догађаје за покретање кода повезаног са тим догађајем (као што је отварање радне свеске, поновно израчунавање радног листа, промена избора и тако даље).
      • Коришћење аргумената. Када пишете макро у ВБА Едитору, можете да наведете улазне аргументе за макро да изврши одређени задатак. Снимљени макро не може имати никакве аргументе јер је независан и није повезан ни са једним другим макроом.
      • Разумевање логике. На пример, ако снимите макро који копира одређене ћелије, рецимо у реду Укупно , Екцел ће забележити само адресе копираних ћелија. Помоћу ВБА можете кодирати логику, тј. копирати вредности у реду Укупно .

    Иако горња ограничења постављају многе границе за снимљене макрое, они су и даље добра полазна тачка. Чак и ако немате појма о ВБА језику, можете брзо снимити макро, а затим анализирати његов код.

    Корисни савети за снимање макроа у Екцел-у

    У наставку ћете наћи неколико савета и белешке које потенцијално могу

    Мајкл Браун је посвећен технолошки ентузијаста са страшћу за поједностављење сложених процеса помоћу софтверских алата. Са више од деценије искуства у технолошкој индустрији, усавршио је своје вештине у Мицрософт Екцел-у и Оутлоок-у, као и у Гоогле табеле и документима. Мајклов блог посвећен је дељењу свог знања и стручности са другима, пружајући једноставне савете и упутства за побољшање продуктивности и ефикасности. Без обзира да ли сте искусан професионалац или почетник, Мајклов блог нуди вредне увиде и практичне савете како да на најбољи начин искористите ове основне софтверске алате.