You are on page 1of 492
at TAS. PHAN TL HUONG PHAN TU HUONG Lap Trinh (In tai ban) NHA XUAT BAN THONG KE HA NOI, nam 2009 LOI NOI DAU Hién nay, phan mém Excel da tré nén thin thuge doi v6i nhiing nguoi throng xuyén lam viée véi bang tinh va biéu dé. Kha néing tinh todn, phan lich va xtt by dit liéu tuyét voi cia phan mém Excel co thé gitp ching ta gidi quyét duoc nhiéu loai cong viée khae nhau. Dé c6 nhiéu sich tiéng Viét huéng dan ste dung phan mém Excel tit co ban dén nang cao, tng dung tir nganh ky thudi dén linh vue kinh té. Tuy nhién, phan lon sach dé chi huéng dan khai thie cde céng cu va chite nding sén cb trong phan mém Excel Véi doi hoi ciia cong vie ngay cdng cao thi vide str dung cong cu va chite Excel nhié ting duoc. May man thay, Microsoft da hé tre ngon ngit lap trinh Visual Basic nding san co trong phan mé Khirat khé khan hodc khong thé dap for Applications (goi tat la VBA) tich hop trong phin mém Excel (cling voi cdc phan mém khéc trong goi Office). La ngén ngit lap winh Visual Basic (VB) phd trién trong ting dung, VBA dé gitip phan mém Excel cé kha nding tw? bién cao, vugt ra khoi gigi han bang tinh thong thcéng. Sue dung VBA ciing voi cdc cel gitip ching ta c6 thé gidi quyét duoc cong cu sén cé trong phan mém E: nhiéu bai todn phite tap voi khé nang we dong héa cao, sin phdm c6 thé trong duong voi cac phan mém chuyén dung. Ngon ngit VBA rat gan gi voi VB, trong khi dé VB ld ngén ngit dugc stv dung pho bién & Viét Nam ciing nhu toan thé gidi vi dé str dung va nguén sach v6, tai liéu phong phi. Mot sé trudng dai hoc trén thé gibi d& dua VBA vaio gidng day chinh thitc. Con tai Viée Nam, nhiéu ngwdi cing rat quan tam dén ngén ngit nay, dic biét la nhing nguéi lam viéc trong linh virc dia chat, khai théc mo, xdy dung, giao théng, thuy loi, tai chinh, ké todn, kinh té,... Hién nay, Trudng Dai hoc’ M6 Bia chat, Tru ing Dai hoc Giao thong van tai, Trudng Dai hoc Xay dung aa dia ngén ngit VBA vio gidng day trong mot s6 chuyén nganh. Hon nita, khi ném duoc VBA trong Excel, ban cé thé dé dang nam bat VBA trong AutoCad, day la mét phan mém chuyén vé linh vic dé hoa rat ndi tiéng thong duoc str dung trong cde ngdnh k¥ thudt. Tuy nhién, sach hudng dan ste dung VBA bang tiéng Viet thi rat hiém hode chi duge dé cdp rét han ché trong cdc tai liéu c6 lién quan. Vi vay, cudn sdch nay hy vong dap tmg mot phan nhu cdu cia nhiing ai quan tam dén ngon ngit VBA noi chung va tng dung trong Excel noi riéng. 3 wa Adi, b6 sung cho phi hop Trong lan tai ban nay, cudn sdch da duge. ode duoc trinh bay lai cho hop ly nham giip ban va dé hiéu hon. M6t sé doan doc de dang tiép cdn hon voi ctra 56 lim viée ctia VBA Toi xin cam on cdc thanh vién trong dién dan www.giaiphapexcel.com va dac biét la Ban quan tri da gop y, cung cap nhiéu kién thie cling nhue cic stin pham ting dung cita VBA dé cudn sdch duoc hoan thién. Téi cting xin gui [oi cam on dén cc anh Lé Vin Duyét (Cong ty TNHH Dunlopillo - TRH6 Chi Minh), Nguyén Duy Tudn (Truong Dai hoc Cong nghiép Ha Noi), Bao Viet ng ty CO phan Du lich va Thong mai Vinpearl - Nha Trang), n Xay dung Dat cing - Hai Phong)... da tan Cuong (C Neguyén Van Son (Cong ty Cé ph tinh gitip dé toi hodn thanh cubn séch nay. Tac gid MUC LUC Chuwong 1: GIGI THIEU VE VISUAL BASIC FOR APPLICATIONS Chuong 2: GHI VA THUC HIEN MACRO g chite ning Recorder Macro 2.1- Tao macro 2.2- Thue hién macro khi sir dung bang dieu khién macro 2.3- Thue hién macro khi sit dung phim tat (shortcut key) 2.4- Tam ding khi thuc hign macro Chwong 3: CACH THUC HIEN MOT MACRO DON GIAN 3.1- Thuc hién macro tit mét ddi trong trong worksheet 3.2- Thy hién macro tir nétt [enh trong thanh céng cu 3.3- Thue hign macro ttt thanh menu 3.4- Thay ddi lya chon trong macro Chuong 4: CUA SO VISUAL BASIC EDITOR (VBE) 4.1- Cau tric cira sé VBE 4.2- Ctra sé soan thio code (Code window) 4.3- Cita $6 Immediate 4.4- Hiéu chinh trong VBE 4.4.1- Thay di tén cita tht tue 4.4.2- Stra di ma lénh trong thit tuc 4.4.3- Tao thém Module trong cira sé VBE 4.4.4- Go bo module Chuong 5: LAM VIEC VGI FILE EXCEL CO CHUA MACRO 5.1- Sir dung chite nang Security 5.2- Sir dung cée chuong trinh diét virus 5 Chuong 6: UU, NHUQC DIEM CUA CHUC NANG TU GHIMACRO 6.1-Uu diém cia chite nang tu ghi macro 6.2- Nhuge diém ctia chtre nang tu ghi macro Chwong 7: NGON NGU VISUAL BASIC FOR APPLICATIONS 7.1- Cac déi tong (Objects) 7.2- Cac phurong thtre (Methods) 7.3- Cac thudc tinh (Properties) Chuong 8: MOT SO BOI TUONG CO BAN TRONG EXCEL 8.1- D6i tugng Application 8.1.1- Thudc tinh Calculation 8.1.2- Thudc tinh ScreenUpdating 8.1.3- Thudc tinh DisplayAlerts 8.2- Déi tuong Window 8.3- Dai trong Workbook 8.4- Déi tugng Worksheet 8.4.1- Xdc dinh cde théng tin trong Worksheet 8.4.2- Nhap dit ligu vao trong Worksheet 8.4.3- Diéu khién Worksheet 8.5- Déi tung 6 (cell) va khdi 6 (range) 8.5.1- Thuéc tinh Range 8,5.2- Thudc tinh Selection 8,5.3- Thudc tinh Cells 8.5.4- Thudc tinh Offset 8.5.5- Thudc tinh Rows va Columns 8.5.6- Cac kiéu thude tinh khac trong tham chiéu a 8.5.7- Xac dinh théng sé ctia 6 va khdi 6 85 8.5.8- Tao ving truc tiép (khéng str dung VBA) 86 8.5.9- Tao ving bang cach str dung VBA 87 8.5.10- Lam viéc v6i nhiéu ving 87 8.5.11- Di chayén, sao chép va xoa 6 (khdi 6) 88 8.5.12- Mot sé thude tinh hifu ich ciia déi trong Range 89 8.6- Tra cru va tham khao ddi trong 93 Chwong 9: KHAL BAO VA SU DUNG BIEN TRONG VBA 96 9.1- Khai bao kiéu gia tri cho bién 97 9.2- Cac todn tr trong VBA 99 9.3- Biéu thite 101 9.4- Gan gid tri cho bién, hang va déi trong 101 9.4.1- Gan gia tri cho bién 101 9.4.2- Gan gia tri 1 hing s6 cho bién 104 9.4.3- Gan gid tri cho bién déi tung 104 9.4.4- Huéng dan truyén tham sé bang gia tri 106 9.5- Khai béo va sir dung mang (Array) 109 9.5.1- Mang cé kich thuéc cé dinh 109 9.5.2- Mang dng Wd 9.6- Sir dung Type dé khai bao bién ngudi ding 112 9.7- Xac dinh kiéu bién bang ham TypeName 14 9.8- Vong doi cia bién 117 Chuong 10: SU DUNG TRG GIUP TRONG VBA 18 10.1- Tro gitip truc tiép trong mi truong VBA 18 10.2- Str dung hép thoai tro gitp voi chu dé 119 7 Be 10.3- Str dung vi du mau ctia Excel 10.4- Str dung Internet Chuong 11: THIET LAP MOI TRUGNG LAM ViEC 11.1- Str dung Options 11.2- Str dung VBA Project Chuong 12: PHUONG PHAP TU XAY DUNG MACRO 12.1- Xay dung macro 12.2- Ngat dong khi ma lénh qua dai 12.3- Cac Idi xdy ra khi xay dung macro Chuong 13: SU DUNG VA XAY DUNG HAM TRONG VBA 13.1- Str dung cac ham sn c6 trong Excel 13.1.1- Goi cdc ham trong Worksheet tir VBA 13.1.2- Chén ham s6 trong Worksheet yao 6 13.2. Str dung cac ham trong VBA 13.2.1- Ham todn hoc | 13.2.2- Ham xa nhan dit ligu 13.2.3- Ham chuyén ddi gitta cae kiéu dit ligu 13.2.4- Ham vé xir ly chudi 13.2.5- Ham dinh dang dit ligu 13.2.6- Ham tao sé ngdu nhién 13.2.7- Ham vé ngay gi 13.2.8- Ham vé dé hoa 13.2.9- Ham chuong trinh 13.2.10- Cac ham khac 13.3- Xay dung ham trong VBA 165 13.3.1- Phan bigt ham ty lap véi thi tac 165 13.3.2- Cach xay dung ham 165 13.3.3- M6 ta ndi dung ham 169 13.3.4- Tao va sit dung ham trong Add-Ins 170 13.3.5- Goi ham tit thi tuc 176 Chuong 14: CAU TRUC DIEU KHIEN 178 14.1- Diéu khién c6 didu kign 178 14.1.1- Diéu khién IF 178 14.1.2- Diéu khién Select Case 180 14.1,3- Diéu khién And 182 14.1.4- Diéu khién Or 182 14.1.5- Diéu khién sir dung nhiéu And va Or 183 14.2- Diéu khién vong lip 185 14.2.1- Diéu khién Do ... Loop 185 14.2.2- Diéu khién Do While ... Loop 186 14.2.3- Diéu khién Do ... Loop While 186 14.2.4- Diéu khién Do Until ... Loop: 187 14.2.5- Diéu khién Do ... Loop Until 187 14.2.6- Diéu khién For .., Next 189 14.2.7- Diéu khién For Each... Next 190 14.2.8- Lénh thoat (Exit) 190 14.2.9- Vong lap Iéng 191 14.2.10- Diéu khién With - End With 192 Chuong 15: HOP THOAI TRONG VBA 15.1- H6p thong bao Message box (Msg Box) 1.1- Céc loai théng digp trong buttons 15.1.2- Théng s6 cia nut diéu khién 15.1.3- Cac biéu tuong théng diép trong Msgbox 15.1.4- Xay dung tham sé cho MsgBox 15.2- Phuong thitc InputBox 15.3- Ham InputBox Chuong 16: KY THUAT XU LY LOI 16.1- Cac kiéu 16i thuong gap 16.2- Léi thi hanh va cach xir ly 18i 16.2.1- Xéc dinh va lam viée voi nhiing 18i xay ra 16.2.2- Cach “bay” Idi chi tiét bing On Error 16.2.3- Goi gon xir ly Ii 16.2.4- Nhiing truéng hop nén b6 qua 16 16.2.5- Xdc dinh Idi cu thé 16.2.6- Léi do ngudi sir dung cé ¥ 16.3- L6i lap trinh va ky thuat xir ly 16i 16.3.1- Cac loai 16i lap trinh 16,3.2- Xée dinh 1di va ky thuat xir ly 15% 16,3.3- Str dung cdng cy sita 16i cia VBA (VBA Debugger) 16.4- Cac phuong phap giam Idi 16.5- Nhiing théng s6 vé ma lénh 13i trong VBA Chwong 17: LAP TRINH SU KIEN TRONG EXCEL 2003 17.1- Chi dan vé cdc thi tuc cla su kién 17.2- Lam hitu hiéu va v6 hiéu cde su kién 194 194 195 195 195 196 197 200 17.3- Trinh ty cdc su kién 17.4- Cac sy kign d6i voi Workbook 17.4.1- Su kién Activate 17.4.2- Sy kién Deactivate 17.4.3- Su kién Open 17.4.4- Su kién BeforeSave 17.4.5- Su kién BeforePrint 17.4.6- Su kién BeforeClose 17.4.7- Su kién NewSheet 17.4.8- Su kién WindowActivate 17.4.9- Su kién WindowDeactivate 17.4.10- Su kién WindowResize 17.5- Cae su kign déi voi Worksheet 17.5.1- Su kién Activate 17.5.2- Su kién Deactivate 17.5.3- Su kién SelectionChange 17.5.4- Su kién Change 17.5.5- Sw kién Calculate 17.5.6- Sur kign BeforeDoubleClick 17.5.7- Su kién BeforeRightDoubleClick 17.5.8- Sy kién FollowHyperlink 17.5.9- Su kign PivotTableUpdate 17.6- Nhitng sy kign khong lién quan véi cac déi tugng 17.6.1- Su kigén OnTime 17.6.2- Su kién Keypress (bam phim) 231 231 231 232 233 244 246 Chwong 18: NHUNG Vi DU VE LAP TRINH VBA 18.1- Vi du vé lim viée véi ving 18.1.1- Sao chép ving dic biét 18.1.2- Sao chép ving chua xac dinh 18.1.3- Di chuyén ving 18.1.4- Duyét ting 6 trong viing xac dinh 18.1.5- Thu tye dé xoa dong tréng 18.2- Thi du vé Lim viée voi workbook va worksheet 18.2.1- Tha tuc xoa sheet rong 18.2.2--Thii tuc tim sheet trong workbook 18.2.3- Di chuyén nhanh ti mét sheet nao do 18.2.4- Khoa 6 chira c6ng thite 18.3- Thay d6i cai dat trong Excel 18.3.1- Thay déi cai dat kiéu Boolean 18.3.2- Thay déi cai dt khong phai 6 kiéu Boolean 18.4- M@t so ham va thi: tuc hitu dung khac 18.4.1- Ham chuyén sé sang chit 18.4.2- Ham tach sé tir trong chudi 18.4.3- Ham vé tinh toan goc 18.4.4- Tha tuc sao chép dit ligu theo kiéu dae biét 18.4.5- Ham ndi suy tuyén tinh 18.4.6- Ham tach tén, ho va tén dém 18.4.7- Sir dung Validation dong Chwong 19: SU DUNG VA XAY DUNG BANG DIEU KHIEN TRONG EXCEL 19.1- Str dung bang diéu khién sn co trong Excel (Dialog Boxes) 19.1.1- Bang diéu khién File Open va File Save As 12 248 255 256 258 260 260 261 262 262 276 277 279 282 285 288 291 295 300 19.1.2- Phuong thtte GetOpenFile va GetSaveAsFilename 19.2- Xay dung UserForm trong VBE 19.2.1- Cach lam hién UserForm trong bang tinh 19.2.2- Mé6 ta cdc diéu khién trong UserForm 19,2,3- Cac céng cu tao UserForm 19.2.4- M6t s6 thude tinh ca céc didu khién 19,2.5- Str dung chudt phai tai UserForm 19.2.6- Str dung chudt phai tai cdc diéu khién 19.2.7- Cac su kién trong UserForm va diéu khién 19.2.8- Quy ude vé dat tén cho diéu khién trong UserForm 19.2.9- Vi du vé xay dung UserForm 19.3- Xay dung DialogSheet trong workbook 19.3.1- Ca ch lim hién va déng DialogShect trong bang tinh 19.3.2. Cac diéu khién trong DialogSheet 19.3.3- Thuge tinh ctia cae diéu khién trong DialogSheet 19.3.4- Str dung ham Excel dé lién két gitta DialogSheet véi Worksheet dung VBA dé lién két gitta DialogSheet v6i Worksheet 19.3.5. 19.4- Xay dung Form trong WorkSheet Chuong 20: TAO THANH CONG CU VA THUC BON BANG VBA 20.1- Tao thanh céng cy Toolbar 20.1.1- Tao thank céng cu (Toolbar) mdi 20.1.2- Xoa thanh céng cy 20.1.3- Str dung ac diéu khién trong CommandBar 20.1.4- Thém cdc diéu khién vo CommandBar 13, 364 365 367 377 378 382 20.1.5- Sir dung cae thugc tinh ctia diéu khién 400 20.1.6- St dung cac phurong thire 404 20.2- Tao thuc don Menu 406 20.2.1- Lap trinh voi menu 408 20.2.2- Tao thue don con (Submenu) 4tl 20.2.3- Thay di trong thc don tit 413 20.2.4- Tao Popup menu mdi cla déi tuong 6 hay khdi 6 417 Chuong 21: LAM VIEC VO1 FILE VA THU’ MUC VOI VBA 418 21.1- Tim tén cia thy muc hién tai (ham CurDir) 418 21.2- Thay doi tén ctia file hoac thu muc (ham Name) 419 21.3- Kiém tra vi tri ctia file va thu muc trong 6 dia (ham Dir) 421 21.4- Xdc dinh ngay va thoi gian sita déi file (ham FileDateTime) 424 21.5- Xée dinh kich c@ cia file (ham FileLen) 425 21.6- XAc dinh va thiét lap thudc tinh ciia file (ham GetAttr va SetAttr) 426 21.7- Thay ddi thiét lap thu muc va 6 dia (Iénh ChDir va ChDrive) 427 21.8- Tao va xod thur muc (Iénh MkDir va RmDir) 428 21.9- Sao chép file (Iénh FileCopy) 429 21.10- Xod file (Iénh Kill) 431 21.11- Mt sé ham hitu ich cua file va thu muc 431 21.11.1- Ham kiém tra su ton tai cita file 432 21.11.2- Ham tach tén file tir duong din 432 21.11.3- Ham kiém tra sy t6n tai cia dudng dan 432 21.11.4- Ham kiém tra sy tn tai Tén cha mét khong 433 14, 21.11.5- Ham kiém tra sheet cé ton tai hay khéng 21.11.6- Ham kiém tra Workbook cé mé hay khong Chuong 22: NHUNG CAU HOI HAY GAP TRONG VBA Chuong 23: pIEU KHIEN CAC CHUGNG TRINH KHAG BANG VBA 23.1- Khoi d6ng mt chuong trinh khdc tir Excel 23.2- Di chuyén giita cae churong trinh ting dung 23.3- Didu khién cde chuong trinh khac 23.4: Tim hiéu vé lién két (Binding) n két mudn, 23.4.2- Lién két som 23.5- Tao cdc déi tuong Automation 23.5.1- Str dung ham CreateObject 23.5.2- Sir dung ham GetObject 23.5.3- Str dung tir khoa New 23.6- Lién két dir liu giita cae churong trinh trong Window 23.6.1- Diéu khién Word tir Excel 23.6.2- Diéu khién PowerPoint tir Excel 23.6.3- Diéu khién AutoCad tir Excel Chwong 24: LIEN KET GIUA EXCEL VOI VISUAL BASIC 6.0 24.1- Tao du an ActiveX DLL 24.1.1- Cach tao lién két don gian ActiveX DLL mét hudng 24.1.2- CAch tao lién két hoan thign ActiveX DLL hai huéng 24.1.3- Hién thi Form cia VB 6.0 trong Excel 24.2- Diéu khién Excel tir Standard EXE ciia VB 6.0 ‘Tai ligu tham khao 444 445 448 450 451 453 454 454 455 456 456 461 470 471 473 478 482 487 Chuong 1 Gid] THIEU VE VISUAL BASIC FOR APPLICATIONS Nhw ching ta da biét, Microsoft Excel (Excel) la phan mém néi tiéng chuyén vé bang tinh va biéu dé cla tap doan Microsoft. Phan mém Excel duoc st dung rat rong rai va cé thé Ging dyng trong nhiéu nganh nghé. Tuy nhién, déi vei nhiing yéu cau tinh toan, xt ly phtre tap, néu chi don thuan str dung phép tinh trong Excel thi khéng thé giai quyét duoc triét dé, hay phai ton nhidu cong thir xay dying hoac bat budc phai thao tac mot cach tht céng. Dé khac phuc nhiing mat han ché do, ng6n ngir lap trinh c6 tén Visual Basic for Applications (VBA) dug tich hop san trong phan mém Excel sé gitip ban co thé gidi quyét triét dé van dé trén. VBA la ng6n ngir lap trinh phat trién trong mdi trvong Office bai tap doan Microsoft. Cac phan mém Excel, Word, Access, PowerPoint,... va cd phan mém chuyén Iinh vue dé hoa... AutoCad (tir phién ban 2000 tré Ién) déu co thé str dung VBA. Tw lic ban dau, ban co thé stv dung macro trong Excel 3 (ra déi nam 1990), Excel 4 (ra doi nam 1992), Excel 5 (ra doi nam 1994). Khi do, macro dugc viét bang ngén ngi? XLM va la mat phan trong bang tinh Excel, kha nang Ung dung con han ché. Excel 98 (ra doi nam 1997) da danh dau sy phat trién ctia macro bang viéc xay dung ng6n ngé lap trinh Weng dung Visual Basic voi clra sd Microsft Visual Basic hoan toan déc lap. Excel phién ban trvoc khéng m@ duoc phién ban nay. Cho dén nay, ngén ngir VBA da co nhirng buéc phat trién vugt bac voi mét s6 kha nang khong thua kém nhiéu so voi ngudi anh em Visual Basic 6.0 (VB). Mac du, b6 Office 2007 da xuat hién trén thi trong voi giao dién va mét sé tinh nang co sy thay déi, nhung cau trac ngon ngi cling nhu giao dién cla VBA van tuong ty nhu trong Office 2003. Macro (con goi la tht tuc hay chuong trinh con) la mét thanh phan cla ngén ngt? VBA, duoc tao ra dé Excel thyc hién theo yéu cau bdi cac cau \énh cha trong no dé hoan thanh mét cong viéc nao dé. Cac cau lénh trong macro duoc xay dung tir cac ky ty go phim dé ty déng thyc hién cac céng viéc mang tinh lp di lap lai hoc tang téc do cho viée nhap, xtr ly sé liu. 17 “RE WoAProject (Gcokt) a raseft Excel Obj eadcolr— Cestanoa00 | ie ere 0 FnBerders = Imcyeat rewbuffer —3c00)___¥ Hinh 1-1: Cia s6 Microsoft Visual Basic trong Excel VBA gitip chung ta thu hin cac céng viéc trong Excel nhanh hon rat nhiéu so véi tinh toan tha C6ng, C6 thé gidi duge nhiing bai toan phiec tap trong nhiéu link vue. Cac céng viée trong Excel cé stv dung dén VBA thi téc 6 xt ly dik li@u va d6 chinh xdc cao, sdn pham ung dung mang tinh chuyén nghiép. VBA cé hai tng dung chinh 1a th tuc (Sub - con goi la chuong trinh con) va ham ty lap (Function) La ng6n ngé lap trinh ung dung trong mdi truéng Office nén VBA tan dung duoc phan nén la bang tinh trong Excel. Vi vay, ban khéng can phai thiét ké hay phai giao dién tt ban dau nhu cac phan mém chuyén vd lap trinh. Mat khac, VBA san cé & bén trong Excel nén khi ban cai dat Office trong Window, VBA sé tu déng duoc cai kem theo. Bé la nhiing loi thé khi st dung VBA. Ngoai nhéing uu diém thi VBA cing tan tai M6t sé nhuoc diém hu: tinh bao mat kém, khéng bién dich thanh file chuong trinh dé hoat déng déc lap ma phai di kém cting voi file trong Excel,... Ngoai ra, mot sé chung trinh diét virus trong nudc khéng phan biét duoc macro voi virus nén dé bi xoa mat macro khi quét virus. Dé hoc duoc ngén gi lap trinh VBA, ban can ndm duge kién thtre co ban va ndm bat duoc cac déi twong, phuong thtvc lam viéc trong Exce! Nhiing ngudi biét lap trinh VBA trong Excel co thé phat trién theo nhiéu dinh huéng khac nhau nhu lap trinh VB6.0, VB.NET, lp trinh &ng dung VBA trong cac phan mém khac cilia Office va ca phan mém chuyén dé hoa AutoCad, hay bat ctr phan mém tng dung nao cé lién quan dén Visual Basic. Cac inh vue ky thuat, kinh té, tai chinh,... déu co thé ng dung ngén ng VBA trong chuyén mén ctia minh. Chuong 2 GHEVA THUC HIEN MACRO St dung chtre nang ty ghi macro (Recorder Macro) la mét y tuéng hay dé tung bu@c hoc ngén ngi? VBA, nhat la lic dau tim hidu va VBA V6i chtrc nang nay, Excel sé ghi lai toan bé cdc céng viéc ban da thuc hién trén bang tinh (bang cdc ky ty duoc go tir ban phim) mé6t cach tuan tw va khi dé, ban co thé nam bat due qua trinh thyc hién cdng viée nho viée chay (thi hanh) macro bdi cac cau lénh trong macro dé _ Protection Macro 100% Macros... AIEEE | a Options... Security... |. Visual Basic Editor AIF LL OF Microsoft Script Editor —Alte-Shift4F11 Hinh 2-4: Thuc hign ghi macro Macro name: |Macro3 Shortcut key: Store macro in: Ctrl This Workbook Description: | Macro recorded 10/21/2006 by Phan Ty Huéng| Ll 20 Trong suét thoi gian ghi, macro da dug luu lai voi tén xac dinh trong module, module dug tao ra trong qua trinh ghi va la mét phan cla Workbook. Macro dug ghi lai cé thé dugc Iuu trong This Workbook (Workbook hién hanh), New Workbook (Workbook moi) hoac trong Personal Macro Workbook (nhéng macro s@ hitu riéng). Nhéng macro dug Iu trong Personal.xls déu ste dung direc khi ban mo Excel ra. Cac macro trong cac Workbook khac nhau co thé stv dung bat ctv lic nao khi cdc Workbook dang mo (ké ca stv dung chting tty Workbook khac). Didu kién dé co thé thuc hién ghi macro: 4. Trén workbook dang duc kich hoat (Activate Workbook). 2. Trén workbook mdi Chire nang nay chi khéng thu'c hién khi ban dteng ghi. Chive nang ty ghi khdng cé tac dung déi voi mét sé céng viéc. Vi du: nh trong qua trinh ghi macro, mét 6 dugc chon (select) & hién tai sé khéng duoc ghi lai cac hanh d6ng xay ra véi né khi ban khéng thu’c hién cong viéc trong 6 dé. Ngoai ra, Excel cling khong ghi lai céc céng viéc khi dang str dung bang diéu khién (dialog box) cho dén khi ban bam nut OK trén bang diéu khién do. Dé hiéu rS hon thi ban hay thuc hanh céng viéc ghi macro nhu & duoi day: 2.1- Tao macro bang chtrc nang Recorder Macro Ban hay tién hanh tao macro dau tién bang chtrc nang ty ghi macro. NGi dung macro nay trinh bay tén va dja chi cia ban, cach thyc hién nhu sau 1. Trong Tools/Macro, chon Record New Macro (hinh 2-1). 2. Trong Macro name: gd Address_abs dé dat ten macro dé (hinh 2-2). Dac diém la ky ty dau tién la ctia ten macro phai la chi khong cé ddu (co nghia khOng phai la ché tiéng Viet). Con cac ky tu khac cé thé la chit, sé hoac ky tw gach dui (ky tu _). Cac ky ty daic biét nhu khoang tréng (Space), @, %, §, #, &,... khong duoc chap nhan, ban cé thé ding ky tw _ dé tach tén trong macro. Quy dinh viét tén cia macro hay ham ty lap dé cap chi tiét hon trong muc 9.1 3. Chuyén sang Shortcut key: dé tréng (ban sé thuc hién viéc nay sau) 4. Trong Store macro in: dé mac dinh la This Workbook 5. Trong Description: ban gé néi dung sau: Enter address starting in cell B3 6. Bam OK 7. Thanh Stop Recording sé xuat hién trong sudt qua trinh ghi macro Ban cé thé di chuyén né dén vi tri khac (néu thay can thiét) bang cach bam trai va gid? chudt tai thanh tiéu dé cla thanh Stop Recording 8. Trong thanh Stop Recording, nut Relative Reference mac dinh bi mo (khéng tac dung - hinh 2-3). 9. Trong Sheet, bam vao B3 va g6 tén cia ban. O & dudi gé tén lop, tiép theo Ia tén tréng ma ban dang hoc. Chil y la ban str dung chi khéng co dau, vi néu cé dau thi ndi dung chi do trong macro sé khé doc. 10. Cho toan b6 cac ch dam va nghiéng. 11. Bam vao 6 B6 Nguyen Van Hung Lop DGCT-DKT K48 Truong DH Mo Dia chat wt yw \ sheets {shee { sheets / Ready _ Recording Hinh 2-3: Qua trinh ghi macro Nhu vay, macro c6é tén Address_abs da dugc ghi lai. Nhieng 6 ma ban da st dung trong qua trinh ghi duoc thé hién duoi dang dia chi tham chiéu tuyét déi (tén 6 gom co hang va cot, vi du A2, CD78....). Vi vay, nhiing 6 trong Worksheet do sé thc hién khi ban cho thc hién macro, tén ban, tén lop va tén trudng sé dug tao ra diing vi tri trong Worksheet. Tiép theo ban sé tao mét macro giéng nhw trén cing bang cach ghi macro. Chi khac la Macro truéc da chon khdi 6 (hay la vung) cé dia chi tham chiéu tuyét déi, con Macro sau sé stv dung quan hé tham chiéu 6 tong déi (quan hé voi vi tri cla 6 duoc kich hoat ban dau). 1. Chon Sheet1 22 Bam vao 6 B11 Trong menu Tools/Macro, chon Record New Macro (hinh 2-1). Trong Macro name: gd Address_Ref dé dat tén macro dé (hinh 2-2). ak wn Trong Shortcut key: Gite phim Shift va g6 chiv A, nhu vay phim tat sé la Ctrl+Shift+A. Ban nén tranh truong hop phim tat dé chay macro tring voi phim tat s4n cé trong Excel. Néu chang may ban tao phim tat chay macro trung voi phim tat trong Excel thi khi bam phim tat, macro do sé chay va phim tat sé khong c6 tac dung. 6. Trong Store macro in: dé mac dinh la This Workbook. 7. Trong Description: ban gé néi dung sau Enter address starting in activate cell position Bam OK oo Thanh Stop Recording sé xuat hién. Ban cé thé di chuyén no dén vi tri khac néu thay can thiét. 10. Trong thanh Stop Recording, bam vao nit Relative Reference cho sang lén (cé tac dyng nhu hinh 2-3) Excel sé tiép tuc ghi macro voi quan hé twong adi cho dén khi nao thoat khdi Excel hoac ban bam lai vao nut Relative Reference 11. G6 tén ban, lop, tén trvong va dia chi trong cdc 6 B11, B12, B13 va B14. Ndi dung the hién nhu sau: Nguyen Van Hung Lop DCCT-DKT K48 Truong DH Mo Dia chat xa Dong Ngac, Tu Liem, Ha Noi 12. Cho toan b6é cac ch dam 13, Bam vao 6 B15. 14. Trong Stop Recording, bam vao nut Stop Recording. Ban cé thé ste dung ch@ cé dau tiéng Viét, tuy nhién khi sang civa sé VBE thi chi? do sé rt khd doc. Ghi cha: Khi st? dung quan hé tham chiéu 6 twong ddi, chon 6 géc (ActiveCell) trudc khi chon nuit Relative Reference, cac 6 khdc quan hé tham chiéu twong déi voi 6 géc dé. Ban c6 thé Iya chon hén hop dia chi tuyét d6i va twong déi trong qua trinh ghi macro. Tuy nhién, ban khéng nén sty dung phuong phap nay vi qua trinh tham chiéu sé ln xOn, kho theo dai. 23 - Dé str dung tham chiéu tuong déi trong sudt qua trinh ghi macro, nut Relative Reference ludn sang (co tac dung). - Dé str dung tham chiéu tuyét déi trong suét qué trinh ghi macro, nut Relative Reference luén téi (khdng tac dung). 2.2- Thyc hién macro khi st dung bang diéu khién macro Thuc hién mét macro la qua trinh thi hanh cac lénh chtra trong macro dé (con goi 14 thuc thi hodc la chay macro. Ban cho thuc hién macro trén tl Sheet2 nhu' sau: 1. Chon sang Sheet2 va bam vao 6 nao dé ngoai 6 B3. 2. Trong menu Tools/Macro, chon Macros (hinh 2-1). 3. Bam vao macro co t6n Address_abs trong danh sach macro (hinh 2-4). Bam vao nut Run Sau dé ban sé thay n@i dung thé hién sau khi thyc hién macro & Sheet2 giéng nhu tai Sheet1. Ban sé thay cdng viéc the hién trong macro Ia rat | nhanh va chinh xac. Voi cac céng phwe tap va xtr ly lon hon, thoi gian dé thi hanh mét macro cé thé vai giay tham chi lén dén hang phut. Kim. tea Roce! Hinh 2-4: Thuc hién macro tif cifa sé Macro tai Sheet2 24 2.3- Thyc hién macro khi st dung phim tat (shortcut key) Thu tuc Address_Ref c6 thé due diéu khién trong bang diéu khién Macro (myc 2.2). Luc true phim tat da duc gan dé thuc hién céng viée dé, hay st dung phu'ong phap thay thé nay: 1. Tai Sheet2 ban bam vao 1 6 bat ky (vi du 6 H14). 2. An phim Ctrl+Shift va A. Khi dé tén va dia chi sé xudt hién duoi 6 do. 3. Ban hay thy thyc hién lai macro dé bang phim tat tai cac vi tri khac trong Sheet2, 2.4- Tam dirng thuc hién va thoat khoi macro Trong qua trinh thi hanh macro, néu muén tam dirng hay huy qua trinh thyc hién macro trvéc khi két thuc, ban 4n vao nut ESC trén ban phim. Dé thu hién céng viéc nay thi thoi gian thurc hién macro phai dd dai. Vi du, tht tuc Address_abs khi thi hanh thi khéng thé kip dng lai vi thoi gian dién ra rat nhanh. Bé kip “bai”, ban bd sung thém vong lp For... Next dé kéo dai thoi gian thyc hién (xem cach bé sung ma lénh vao trong macro trong muc 4.4). Két qua nhu hinh 2-5 & dui day: Range ("03") .Select Bet iveCe 11. FormilaRic: Range ("54") .Select ActiveCe11. ForimulaRic Range ("BS") Select,

You might also like