Talaan ng nilalaman
Step-by-step na tutorial para sa mga nagsisimula upang mag-record, tumingin, magpatakbo at mag-save ng macro. Matututuhan mo rin ang ilang panloob na mekanika kung paano gumagana ang mga macro sa Excel.
Ang mga macro ay isang mahusay na paraan upang i-automate ang mga paulit-ulit na gawain sa Excel. Kung paulit-ulit mong ginagawa ang parehong mga bagay, i-record ang iyong mga galaw bilang isang macro at magtalaga ng keyboard shortcut dito. At ngayon, maaari mong awtomatikong maisagawa ang lahat ng naitalang pagkilos, gamit ang isang keystroke!
Paano mag-record ng macro sa Excel
Tulad ng iba pang tool sa VBA, Excel macros naninirahan sa tab na Developer , na nakatago bilang default. Kaya, ang unang bagay na kailangan mong gawin ay magdagdag ng tab ng Developer sa iyong Excel ribbon.
Upang mag-record ng macro sa Excel, isagawa ang mga hakbang na ito:
- Sa Developer tab, sa grupong Code , i-click ang button na Record Macro .
Bilang kahalili, i-click ang Record Macro na button sa kaliwang bahagi ng Status bar:
Kung mas gusto mong gamitin ang keyboard kaysa sa mouse, pindutin ang sumusunod key sequence Alt , L , R (isa-isa, hindi lahat ng key sa isang pagkakataon).
- Sa Record Macro dialog box na lalabas, i-configure ang mga pangunahing parameter ng iyong macro:
- Sa Macro name box, ilagay ang pangalan para sa iyong macro. Subukang gawin itong makabuluhan at mapaglarawan, para sa paglaon ay mabilis mong mahahanap ang macro sa listahan.
Samakatipid ka ng maraming oras at nerbiyos na ginagawang mas maayos ang curve ng iyong pag-aaral at mas mahusay ang mga macro.
Gumamit ng mga kaugnay na sanggunian para sa macro recording
Bilang default, ginagamit ng Excel ang absolute referencing para mag-record ng macro. Nangangahulugan iyon na palaging tumutukoy ang iyong VBA code sa eksaktong parehong mga cell na iyong pinili, nasaan ka man sa worksheet kapag pinapatakbo ang macro.
Gayunpaman, posibleng baguhin ang default na gawi sa kamag-anak na pagtukoy . Sa kasong ito, hindi gagawa ng hardcode ang VBA ng mga cell address, ngunit gagana ito sa aktibong (kasalukuyang napili) na cell.
Upang mag-record ng macro na may kaugnay na pagtukoy, i-click ang Gamitin Mga Kaugnay na Sanggunian na button sa tab na Developer . Upang bumalik sa ganap na pagre-refer, i-click muli ang button para i-toggle ito.
Halimbawa, kung itatala mo ang pagse-set up ng isang talahanayan na may default na absolute reference, ang iyong macro ay palaging muling likhain ang talahanayan sa parehong lugar (sa kasong ito, Header sa A1, Item1 sa A2, Item2 sa A3).
Sub Absolute_Referencing() Range( "A1" ). Piliin ang ActiveCell.FormulaR1C1 = "Header" Range( "A2" ). Piliin ang ActiveCell.FormulaR1C1 = "Item1" Range( "A3" ). Piliin ang ActiveCell.FormulaR1C1 = "Item2" End Sub
Kung itatala mo ang parehong macro na may kamag-anak na sanggunian, gagawin ang talahanayan saanman mo ilagay ang cursor bago patakbuhin ang macro ( Header saaktibong cell, Item1 sa cell sa ibaba, at iba pa).
Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). Piliin ang ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ). Piliin ang ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ). Piliin ang End SubMga Tala:
- Kapag gumagamit ng mga kamag-anak na sanggunian, tiyaking piliin ang paunang cell bago ka magsimulang mag-record ng macro.
- Ang kaugnay na pagtukoy ay hindi gumagana para sa lahat. Ilang feature ng Excel, hal. ang pag-convert ng range sa isang table, ay nangangailangan ng ganap na mga sanggunian.
Pumili ng mga range sa pamamagitan ng paggamit ng mga keyboard shortcut
Kapag pumili ka ng cell o hanay ng mga cell gamit ang mouse o mga arrow key, Excel nagsusulat ng mga cell address. Dahil dito, sa tuwing magpapatakbo ka ng macro, ang mga naitala na operasyon ay isasagawa nang eksakto sa parehong mga cell. Kung hindi ito ang gusto mo, gumamit ng mga shortcut para sa pagpili ng mga cell at range.
Bilang halimbawa, mag-record tayo ng macro na nagtatakda ng partikular na format (d-mmm-yy) para sa mga petsa sa talahanayan sa ibaba:
Para dito, ire-record mo ang mga sumusunod na operasyon: pindutin ang Ctrl + 1 upang buksan ang Format Cells dialog > Petsa > piliin ang format > OK. Kung kasama sa iyong recording ang pagpili ng range gamit ang mouse o mga arrow key, gagawa ang Excel ng sumusunod na VBA code:
Sub Date_Format() Range( "A2:B4" ). PumiliSelection.NumberFormat = "d-mmm-yy" End SubAng pagpapatakbo ng macro sa itaas ay pipiliin ang hanay na A2:B4 sa bawat oras. Kung magdaragdag ka pa ng ilan pang mga row sa iyong talahanayan, hindi sila mapoproseso ng macro.
Ngayon, tingnan natin kung ano ang mangyayari kapag pinili mo ang talahanayan gamit ang isang shortcut.
Ilagay ang cursor sa itaas na kaliwang cell ng target na hanay (A2 sa halimbawang ito), simulan ang pag-record at pindutin ang Ctrl + Shift + End . Bilang resulta, ang unang linya ng code ay magiging ganito:
Range(Selection, ActiveCell.SpecialCells(xlLastCell)). Piliin angPiliin ng code na ito ang lahat ng mga cell mula sa aktibong cell hanggang sa huling ginamit na cell, ibig sabihin ay awtomatikong isasama sa pagpili ang lahat ng bagong data.
Bilang kahalili, maaari mong gamitin ang mga kumbinasyon ng Ctrl + Shift + Arrow:
- Ctrl + Shift + Right arrow upang piliin ang lahat ng ginamit na cell sa kanan, na sinusundan ng
- Ctrl + Shift + Pababang arrow upang piliin ang lahat ng ginamit na cell pababa.
Bubuo ito ng dalawang linya ng code sa halip na isa, ngunit ang resulta ay pareho - lahat ng mga cell na may data pababa at sa kanan ng aktibong cell ay pipiliin:
Saklaw(Selection, Selection. End ( xlToRight)). Piliin ang Saklaw(Selection, Selection. End (xlDown)). Piliin angMag-record ng macro para sa pagpili sa halip na mga partikular na cell
Ang pamamaraan sa itaas (ibig sabihin, ang pagpili sa lahat ng ginamit na mga cell na nagsisimula sa aktibong cell) ay mahusay na gumagana para sa pagsasagawa ng parehong mga operasyon sa buong talahanayan. Sa ilangmga sitwasyon, gayunpaman, maaaring gusto mong iproseso ng macro ang isang partikular na hanay kaysa sa buong talahanayan.
Para dito, ibinibigay ng VBA ang Selection object na tumutukoy sa kasalukuyang napiling (mga) cell . Karamihan sa mga bagay na maaaring gawin sa isang hanay, ay maaari ding gawin sa pagpili. Anong bentahe ang ibinibigay nito sa iyo? Sa maraming kaso, hindi mo kailangang pumili ng kahit ano habang nagre-record - sumulat lang ng macro para sa aktibong cell. At pagkatapos, piliin ang anumang hanay na gusto mo, patakbuhin ang macro, at manipulahin nito ang buong seleksyon.
Halimbawa, maaaring i-format ng one-line macro na ito ang anumang bilang ng mga napiling cell bilang mga porsyento:
Sub Percent_Format () Selection.NumberFormat = "0.00%" End SubPlano nang mabuti kung ano ang iyong itinatala
Ang Microsoft Excel Macro Recorder ay kumukuha ng halos lahat ng iyong aktibidad, kabilang ang mga pagkakamali na iyong ginawa at itinatama. Halimbawa, kung pinindot mo ang Ctrl + Z upang i-undo ang isang bagay, ire-record din iyon. Sa kalaunan, maaari kang magkaroon ng maraming hindi kinakailangang code. Upang maiwasan ito, i-edit ang code sa VB Editor o ihinto ang pagre-record, tanggalin ang isang kulang na macro at magsimulang mag-record muli.
I-back up o i-save ang workbook bago magpatakbo ng macro
Ang resulta ng Excel hindi maa-undo ang mga macro. Kaya, bago ang unang pagtakbo ng isang macro, makatuwirang gumawa ng kopya ng workbook o hindi bababa sa i-save ang iyong kasalukuyang gawain upang maiwasan ang mga hindi inaasahang pagbabago. Kung may mali ang macro,isara lang ang workbook nang hindi nagse-save.
Panatilihing maikli ang mga naka-record na macro
Kapag nag-automate ng pagkakasunud-sunod ng iba't ibang gawain, maaaring matukso kang i-record ang lahat ng ito sa isang macro. Mayroong dalawang pangunahing dahilan upang hindi gawin ito. Una, mahirap mag-record ng mahabang macro nang maayos nang walang pagkakamali. Pangalawa, ang malalaking macro ay mahirap unawain, subukan at i-debug. Samakatuwid, magandang ideya na hatiin ang isang malaking macro sa ilang bahagi. Halimbawa, kapag gumagawa ng talahanayan ng buod mula sa maraming pinagmulan, maaari kang gumamit ng isang macro para mag-import ng impormasyon, isa pa para pagsama-samahin ang data, at pangatlo para i-format ang talahanayan.
Tingnan din: Paano i-multiply ang mga column sa ExcelSana ang tutorial na ito ay nagbigay sa iyo ng ilang insight kung paano mag-record ng macro sa Excel. Anyway, nagpapasalamat ako sa iyong pagbabasa at sana ay makita kita sa aming blog sa susunod na linggo!
macro names, maaari mong gamitin ang mga titik, numero, at underscore; ang unang karakter ay dapat na isang titik. Hindi pinapayagan ang mga puwang, kaya dapat mong panatilihin ang isang pangalan na may isang salita na nagsisimula sa bawat bahagi na may malaking titik (hal. MyFirstMacro ) o magkahiwalay na mga salita na may mga underscore (hal. My_First_Macro ). - Sa kahon ng Shortcut key , i-type ang anumang titik upang magtalaga ng keyboard shortcut sa macro (opsyonal).
Parehong pinahihintulutan ang malalaking titik o maliliit na titik, ngunit matalino kang gumamit ng malalaking kumbinasyon ng key ( Ctrl + Shift + letter ) dahil ang mga macro shortcut ay na-override ang anumang default na mga shortcut ng Excel habang bukas ang workbook na naglalaman ng macro. Halimbawa, kung itinalaga mo ang Ctrl + S sa isang macro, mawawalan ka ng kakayahang i-save ang iyong mga Excel file gamit ang isang shortcut. Ang pagtatalaga ng Ctrl + Shift + S ay mananatili sa karaniwang shortcut sa pag-save.
- Mula sa drop-down na listahan ng I-store ang macro sa , piliin kung saan mo gustong iimbak ang iyong macro:
- Personal Macro Workbook – iniimbak ang macro sa isang espesyal na workbook na tinatawag na Personal.xlsb . Ang lahat ng macro na nakaimbak sa workbook na ito ay available sa tuwing gagamitin mo ang Excel.
- Itong Workbook (default) - ang macro ay maiimbak sa kasalukuyang workbook at magiging available kapag binuksan mo muli ang workbook o ibahagi ito sa ibang mga user.
- Bagong Workbook – gumagawa ng bagong workbook at itinatala ang macro sa workbook na iyon.
- Sa Paglalarawan na kahon, mag-type ng maikling paglalarawan ng kung ano ang ginagawa ng iyong macro (opsyonal).
Bagama't opsyonal ang field na ito, iminumungkahi kong palagi kang magbigay ng maikling paglalarawan. Kapag gumawa ka ng maraming iba't ibang macro, makakatulong ito sa iyong mabilis na maunawaan kung ano ang ginagawa ng bawat macro.
- I-click ang OK upang simulan ang pag-record ng macro.
- Sa Macro name box, ilagay ang pangalan para sa iyong macro. Subukang gawin itong makabuluhan at mapaglarawan, para sa paglaon ay mabilis mong mahahanap ang macro sa listahan.
- Isagawa ang mga aksyon na gusto mo para mag-automate (pakitingnan ang halimbawa ng recording macro).
- Kapag tapos na, i-click ang button na Ihinto ang Pagre-record sa tab na Developer :
O ang analogous na button sa Status bar:
Halimbawa ng pag-record ng macro sa Excel
Upang makita kung paano ito gumagana sa pagsasanay, mag-record tayo ng macro na naglalapat ng ilang pag-format sa mga napiling cell. Para dito, gawin ang sumusunod:
- Pumili ng isa o higit pang mga cell na gusto mong i-format.
- Sa tab na Developer o Status bar, i-click ang Record Macro .
- Sa dialog box na Record Macro , i-configure ang mga sumusunod na setting:
- Pangalanan ang macro Header_Formatting (dahil ipo-format natin ang mga header ng column).
- Ilagay ang cursor sa kahon na Shortcut key , at pindutin ang Shift + F key nang sabay-sabay. Itatalaga nito ang Ctrl + Shift + F shortcut sa macro.
- Piliin na iimbak ang macro sa workbook na ito.
- Para sa Paglalarawan , gamitin ang sumusunod na text na nagpapaliwanag kung ano ginagawa ng macro: Ginagawa ang text na naka-bold, nagdaragdag ng kulay ng fill, at mga center .
- I-click ang OK upang simulan ang pagre-record.
- I-format ang mga paunang napiling mga cell sa paraang gusto mo. Para sa halimbawang ito, ginagamit namin ang naka-bold na pag-format ng teksto, mapusyaw na asul na kulay ng fill at center alignment.
Tip. Huwag pumili ng anumang mga cell pagkatapos mong simulan ang pag-record ng macro. Titiyakin nito na ang lahat ng pag-format ay nalalapat sa pagpili , hindi sa isang partikular na hanay.
- I-click ang Ihinto ang Pagre-record sa alinman sa tab na Developer o sa bar na Status .
Ayan na! Ang iyong macro ay naitala. Ngayon, maaari kang pumili ng anumang hanay ng mga cell sa anumang sheet, pindutin ang nakatalagang shortcut ( Ctrl+ Shift + F ), at ang iyong custom na pag-format ay ilalapat kaagad sa mga napiling cell.
Paano gumana sa mga naka-record na macro sa Excel
Maa-access ang lahat ng pangunahing opsyon na ibinibigay ng Excel para sa mga macro sa pamamagitan ng dialog box na Macro . Upang buksan ito, i-click ang button na Macros sa tab na Developer o pindutin ang Alt+ F8 shortcut.
Sa dialog box na bubukas, maaari mong tingnan ang isang listahan ng mga macro na available sa lahat ng bukas na workbook o nauugnay sa isang partikular na workbook at gamitin ang mga sumusunod na opsyon:
- Run - ipapatupad ang napiling macro .
- Step into - nagbibigay-daan sa iyong i-debug at subukan ang macro sa Visual Basic Editor.
- I-edit - binubuksan ang napiling macro saang VBA Editor, kung saan maaari mong tingnan at i-edit ang code.
- Tanggalin - permanenteng tinatanggal ang napiling macro.
- Mga Opsyon – nagbibigay-daan sa pagbabago ng mga katangian ng macro tulad ng nauugnay na Shortcut key at Paglalarawan .
Paano tingnan macros sa Excel
Maaaring tingnan at baguhin ang code ng isang Excel macro sa Visual Basic Editor. Upang buksan ang Editor, pindutin ang Alt + F11 o i-click ang button na Visual Basic sa tab na Developer .
Kung nakikita mo ang VB Editor sa unang pagkakataon, mangyaring huwag masiraan ng loob o matakot. Hindi natin pag-uusapan ang istruktura o syntax ng wikang VBA. Ang seksyong ito ay magbibigay lamang sa iyo ng ilang pangunahing pag-unawa sa kung paano gumagana ang mga Excel macro at kung ano talaga ang ginagawa ng pagre-record ng isang macro.
May ilang window ang VBA Editor, ngunit tututuon namin ang dalawang pangunahing mga window:
Project Explorer - nagpapakita ng listahan ng lahat ng bukas na workbook at ang kanilang mga sheet. Bukod pa rito, nagpapakita ito ng mga module, mga form ng user at mga module ng klase.
Code Window - dito mo maaring tingnan, i-edit at isulat ang VBA code para sa bawat bagay na ipinapakita sa Project Explorer.
Noong naitala namin ang sample na macro, ang mga sumusunod na bagay ay naganap sa backend:
- Ang isang bagong module ( Moduel1 ) ay ipinasok.
- Isinulat ang VBA code ng macro sa Code window.
Upang makita ang code ng isang partikular namodule, i-double click ang module ( Module1 sa aming kaso) sa window ng Project Explorer. Karaniwan, ang isang macro code ay may mga bahaging ito:
Macro name
Sa VBA, anumang macro ay nagsisimula sa Sub na sinusundan ng macro name at nagtatapos sa End Sub , kung saan ang "Sub" ay maikli para sa Subroutine (tinatawag ding Procedure ). Ang aming sample na macro ay pinangalanang Header_Formatting() , kaya nagsisimula ang code sa linyang ito:
Sub Header_Formatting()Kung gusto mong palitan ang pangalan ng macro , tanggalin lang ang kasalukuyang pangalan at direktang mag-type ng bago sa window ng Code.
Mga Komento
Ang mga linyang may prefix na apostrophe (') at ipinapakita sa berde bilang default ay hindi isinasagawa. Ito ay mga komentong idinagdag para sa mga layunin ng impormasyon. Ang mga linya ng komento ay maaaring ligtas na maalis nang hindi naaapektuhan ang pagpapagana ng code.
Karaniwan, ang isang naka-record na macro ay may 1 - 3 linya ng komento: macro name (obligatory); paglalarawan at shortcut (kung tinukoy bago i-record).
Executable code
Pagkatapos ng mga komento, darating ang code na nagsasagawa ng mga aksyon na iyong naitala. Minsan, ang isang naitala na macro ay maaaring may maraming kalabisan na code, na maaaring maging kapaki-pakinabang pa rin sa pag-alam kung paano gumagana ang mga bagay sa VBA :)
Ipinapakita ng larawan sa ibaba kung ano ang ginagawa ng bawat bahagi ng code ng aming macro:
Paano magpatakbo ng naka-record na macro
Sa pamamagitan ng pagpapatakbo ng macro, sasabihin mo sa Excel na bumalik sa naitala na VBA code at isagawa angeksaktong parehong mga hakbang. Mayroong ilang mga paraan upang magpatakbo ng naka-record na macro sa Excel, at narito ang pinakamabilis:
- Kung nagtalaga ka ng keyboard shortcut sa macro, pindutin ang shortcut na iyon .
- Pindutin ang Alt + 8 o i-click ang button na Macros sa tab na Developer . Sa dialog box na Macro , piliin ang gustong macro at i-click ang Run .
Posible ring tumakbo isang naitala na macro sa pamamagitan ng pag-click sa iyong sariling button. Narito ang mga hakbang sa paggawa nito: Paano gumawa ng macro button sa Excel.
Paano mag-save ng mga macro sa Excel
Nag-record ka man ng macro o nagsulat ng VBA code nang manu-mano, upang i-save ang macro , kailangan mong i-save ang workbook bilang macro enabled (.xlms extension). Ganito:
- Sa workbook na naglalaman ng macro, i-click ang button na I-save o pindutin ang Ctrl + S .
- Sa I-save Bilang dialog box, piliin ang Excel Macro-Enabled Workbook (*.xlsm) mula sa drop-down list na I-save bilang uri , at pagkatapos ay i-click ang I-save :
Excel macros: ano ang at ano ang hindi naitala
Gaya ng nakita mo pa lang, medyo madaling mag-record ng macro sa Excel. Ngunit upang lumikha ng mga epektibong macro, kailangan mong maunawaan kung ano ang nangyayari sa likod ng mga eksena.
Ano ang naitala
Ang Macro Recorder ng Excel ay kumukuha ng maraming bagay - halos lahat ng pag-click ng mouse at pagpindot sa key. Kaya, dapat mong pag-isipang mabuti ang iyong mga hakbang upang maiwasan ang labis na code na maaaring mangyarimagreresulta sa hindi inaasahang pag-uugali ng iyong macro. Nasa ibaba ang ilang halimbawa ng kung ano ang naitala ng Excel:
- Pagpili ng mga cell gamit ang mouse o keyboard. Tanging ang huling pagpili bago maitala ang isang aksyon. Halimbawa, kung pipiliin mo ang hanay na A1:A10, at pagkatapos ay i-click ang cell A11, tanging ang pagpili ng A11 ang itatala.
- Pag-format ng cell gaya ng fill at kulay ng font, alignment, mga hangganan, atbp.
- Pag-format ng numero gaya ng porsyento, pera, atbp.
- Pag-edit ng mga formula at value. Itinatala ang mga pagbabago pagkatapos mong pindutin ang Enter .
- Pag-scroll, paglipat ng mga Excel window, paglipat sa iba pang worksheet at workbook.
- Pagdaragdag, pagpapangalan, paglipat at pagtanggal ng mga worksheet.
- Paggawa, pagbubukas at pag-save ng mga workbook.
- Pagpapatakbo ng iba pang mga macro.
Ano ang hindi maitatala
Sa kabila ng maraming iba't ibang bagay na maaaring i-record ng Excel, ang ilang mga tampok ay lampas sa mga kakayahan ng ang Macro Recorder:
- Mga Pag-customize ng Excel ribbon at Quick Access toolbar.
- Mga pagkilos sa loob ng mga dialog ng Excel gaya ng Conditional Formatting o Hanapin at Palitan (ang resulta lang ang maitatala).
- Mga pakikipag-ugnayan sa ibang mga program. Halimbawa, hindi ka makakapag-record ng pagkopya/pag-paste mula sa isang Excel workbook patungo sa isang Word document.
- Anumang bagay na may kinalaman sa VBA Editor. Ito ay nagpapataw ng pinakamahalagang limitasyon - maraming bagay na maaaring gawin sa antas ng programming ang hindimaitala:
- Paggawa ng mga custom na function
- Pagpapakita ng mga custom na dialog box
- Paggawa ng mga loop gaya ng Para sa Susunod , Para sa Bawat , Do While , atbp.
- Pagsusuri ng mga kundisyon. Sa VBA, maaari mong gamitin ang IF Then Else na pahayag upang subukan ang isang kundisyon at magpatakbo ng ilang code kung totoo ang kundisyon o isa pang code kung mali ang kundisyon.
- Pagpapatupad ng code batay sa mga kaganapan . Sa VBA, maaari kang gumamit ng maraming mga kaganapan upang magpatakbo ng isang code na nauugnay sa kaganapang iyon (tulad ng pagbubukas ng isang workbook, muling pagkalkula ng isang worksheet, pagbabago ng pagpili, at iba pa).
- Paggamit ng mga argumento. Kapag nagsusulat ng macro sa VBA Editor, maaari kang magbigay ng mga argumento ng input para sa isang macro upang maisagawa ang isang partikular na gawain. Ang isang naka-record na macro ay hindi maaaring magkaroon ng anumang mga argumento dahil ito ay independyente at hindi konektado sa anumang iba pang mga macro.
- Pag-unawa sa lohika. Halimbawa, kung nagre-record ka ng macro na kumukopya ng mga partikular na cell, sabihin sa row na Kabuuan , ire-record lang ng Excel ang mga address ng nakopyang mga cell. Sa VBA, maaari mong i-code ang logic, ibig sabihin, kopyahin ang mga halaga sa row na Kabuuan .
Bagaman ang mga limitasyon sa itaas ay nagtakda ng maraming hangganan para sa mga naitalang macro, sila ay isang magandang panimulang punto. Kahit na wala kang ideya sa wika ng VBA, mabilis kang makakapag-record ng macro, at pagkatapos ay suriin ang code nito.
Mga kapaki-pakinabang na tip para sa pagre-record ng mga macro sa Excel
Sa ibaba makikita mo ang ilang tip at mga tala na maaaring potensyal