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, Ctra sé Microsoft Visual Basic hién ra théng bao rang thi tuc dang thy hién da bi ngat (Code excecution has been interrupted). Ban cé cac trvdng | hop lwa chon nhw sau: - Continue: tht tuc tiép tuc chay binh thudng - End: thi tue ding tai day. - Debug: g& réi trong thi tye (xem chi tiét trong Chuong 16). Tuy trwong hop cu thé ma ban chon mét trong cac trudng hop trén. Trong mét s6 trong hop si? dung vong lap, néu khéng can than thd tue sé khéng bao gid két thiic. Vi du nhu thd tue dudi day: "Thai tuc lam viéc tét Sub Chuan () Dim i As Integer en Do Range ("Al") .Value = i Msgbox Range("Al") .Value isiti Loop Until i > 10 End Sub ‘Tht tuc trén cé st dung vong lp Do ... Loop tang dan bién i tt 1 dén 10 I va thoat khdi vong lap do thod man diéu kién i> 10, tht tuc két thuc. Nhu vay tht tuc lam viée tdt. Con tht tuc duéi day: "Tha tuc nay bi 16i, khéng bao gid két thic Sub Loi () Dim i As Integer Fea Do Range ("Al") .Value = i Msgbox Range ("Al") .value Loop Until i > 10 End Sub Tht tuc & trén do quén khai bao dong lénh i =i + 1, do dé gid tri i van bang 1 va diéu kién i> 10 khéng bao giv dug thod man. vong lap khéng bao gid’ két thc. Ti dé dan dén tinh trang “treo may”. Phim ESC luc do vé tac dung, ban phai bam Ctrl+Break dé co thé thoat khai tinh trang “treo may” nh hinh 2-5. 26 Chuong 3 CAcH THUC HIEN MOT MACRO BON Glan Ban da biét cach thuc hién macro tly phim tat Ngoai ra, con mot phuong thtre khac cé thé thye hign macro, ban cé thé thuc hién macro tty cac diéu khién sau: - B6i twong trong worksheet hoac biéu dd. - Nut lénh (Button) trong thanh cong cu (Toolbar). - Thanh menu ctia Excel. 3.4- Thc hién macro tir mot déi twong trong worksheet C6 nhidu déi tuong trén worksheet cé thé diéu khién macro, vi du nhu déi tueng dé hoa trong worksheet. Cac bu@c thye hign nh sau: 4. Chon Sheet3 hay bat cr sheet nao cén tréng. 2. Vao menu View/Toolbars chon Drawing (trir trudng hop thanh cong cut Toolbar da co trén man hinh). 3. Chon déi tung dé hoa nh hinh Oval va vé hinh oval do: 4. Go ch vao hinh Oval dé bang cach bam phai chudt, rdi chon Add Text tiv thye don tat (hinh 3-1). 5. Gé ndi dung Address rdi bam ra ngoai dé thoat. _ 6. Ban 66 thé thay déi kich thu@c hinh Oval cho phd hop dé thé hién day aii ndi dung chi & bén trong, ngoai ra con phai dam bao tinh my thuat va tién dung khi sl dung. 7. An phai chudt vao hinh Oval d6, chon Assign Macro dé gan thu tuc cho déi twong hinh Oval. 8. Trong bang Assign Macro, chon macro cé tén Address_Ref. 9. Bam OK. Sau-do, ban cho thy hién chay tht macro: 4. Chon 1 6 nao do (vi dy nhu 6 J13). 2. BAm vao hinh Oval trén, macro sé thyc hién. 27 Ghi chai: Néu ban muén di chuyén & wong dé hoa (c6 gan diéu khién macro) ra khdi ché khac trong worksheet, st dung phai chudt dé di chuyén | (b6i vi bam trai chuét thi macro sé thy hin). Con néu ban muén thay déi macro khac thi ban bam phai chudt trén di tvong, chon Assign Macro va Iwa chon macro nao ban muén. Nhiing déi tuong trong Drawing cé chira thi tuc (macro) khi di chuyén chudt toi sé cé hinh ban tay, dé la dau higu dé phan biét voi déi twong khéng chiva thd tye Format AutoShape, Hypertink, 14 | «+ \ cheeti { Sheet ) sheets / shesty / | i Rey E ui Hinh 3-1; Gan macro vao hinh Oval 3.2- Thue hién macro tv nut 'énh trong thanh céng cu Ngoai cach 6 trén, ban cé thé thyc hién macro tv nut !énh (button) trong cac thanh céng cu ty tao (Custom Toolbar). Vi dy, ban c6 thé gan viée didu khién macro Address_abs vao nit hinh mat cudi (Smiley Face) nhu sau: 1. Di chuyén chuét dén mot diém nao do trong cae thanh Toolbar. 2. An phai chu6t, trong thye don tat chon Customize. 3. Trong bang Customize, chon tab Toolbars (hinh 3-2). 28 & Chon nut New. Sau do bang New Toolbar xuat hién, ban g6 tén vao (vi du Macro1) roi OK Trong bang Customize, chon tab Commands (hinh 3-3). a ND Trong hdép Categories, chon AutoShapes. Trong Commands, cuén xudng cho dén khi ban chon duoc hinh ung y (hinh Smiley Face). 9. Tai hinh Smiley Face, git? trai va kéo chudt vao trong thanh céng cu Macro1 (hinh 3-4). Ban cé thé chon thém cdc biéu tuong khdc néu can @ 140. Bam phai chudt vao nut Smiley Face, thwc don tat sé hién ra. Ban C6 thé stra hay xod hinh dé va thay bang cac hinh khac. Xem thém mét sé chtrc nang ctia thuc don tat tai muc 3.3 & dui day. 11. Chon Assign Macro trong thye don tat, chon macro Address_abs va bam OK. 12. Dong bang Customize. Toolbars Commands Options Toolbars: (Formatting | [2 30 settings © Borders | (chart (Chart Menu Bar Circular Reference | | | | | I | | [Compare Side by Side [ Contral Toolbox (Diagram 1S Drawing (Drawing Can Exit Design {Forms [. Formuls Au: Hinh 3-2: Tao thahh céng cu méi 29 eee oes | Qotions: Toolbars Commands To add a command to a toolbar: select a category and drag the command out of this dialog box te a toolbar Categories: Commands: Window and Help Dr | Chatting | iWeb | Forms Control Toolbox | Macros Builtsin Menus (New Menu ineuite Sole Tookyars Commands Options To add a command to a tacibar: select 8 category and drag the. command out of this dslog box to a toolbar. Commands: Nea i New Reset Button tmage Open Edit Button Image... 7 Close ‘Change Button Image > fi seve Defaut Style [Save As... ‘ext Only (Alays) Assign tecro, Hinh 3-4: Tao cdc nit Iénh trong thanh Macro1 va gan Assign Macro 30, Ghi cha: Thanh céng cu ty tao thudéc s& htru ctia workbook ma no duoc tao ra. Thanh céng cy dé van ton tai trong Excel cho di ban da dong workbook tao ra no. Khi ban bam vao nut chtra thi tuc thi workbook tao ra né sé dug mora déng thoi thi hanh cac lénh duoc gan cho nut do. Ban hay thir str dung nut lénh vira tao ra dé thure hién céng viéc sau: 1. Tru@c khi thu hién thd tuc, ban xoa sach ndi dung cla Sheet2. 2. Bam chuét vao nut Smiley Face trong thanh céng cu Macro1 Két qua sé thé hién trén Sheet2. 3.3- Thue hién macro tl thanh menu Tw thanh menu ctia Excel ban co thé tao ra cac menu moi ma khi lwa chon chung thi macro sé thuc hién. Vi du nhu tao menu mdi cé tén Macro2 nam ngay sat menu Help, menu Macro2 cé chtra menu con Work Address, cach thc hién nhu sau . Truéc khi thure hién, ban phai chac chan rang Workbook chtra macro cla ban dang dug kich hoat (néu khéng ban phai mé ra). N Thém mét worksheet moi bang céch vao menu Insert/Worksheet (dat la Sheet4). w Trong menu Tools/Customize, chon tab Commands trong bang Cus- tomize 4. Cuén xudng déng cudi cling va chon New Menu trong Categories (hinh 3-5). 5. Gif trai chuét 6 New Menu trong Commands va kéo vao dong menu canh Help 6. Bam phai chudt vao New Menu trong thanh menu cua Excel, thc don tat hién ra. 7. Thay tén mdi trong Name la &Macro2. Néu chi can menu nay (menu me) thi bam vao Assign Macro dé chon (hinh 3-6). Néu can thém cdc 31 menu con (menu item), khéng can gan thd tuc vi menu me chi mang tinh quan ly. To sss a conmantoatosbr: sdb acategsry entcragthe conn cas. is doa box co 300d Catagories Commande: edo andiin nal Dene - , Augen Chante web Forms ‘ental Tax saces Shei / sheet \sheers 7 Hinh 3-5: rao New Menu trong thanh menu ctla Excel eS et “Window Help| Todd cme atacbar sts scan hee iedsog tanto seocbe \ Estexees commas | Steen a3 an CONG ORON = a i Le F BES We) WA Sent {Sheet { Sheet \Sheeta / ay Hinh 3-6: Tao menu Maro2 trong thanh menu cua Excel 32 i i Ky tw & trvoc M sé gach chan chi M trong menu Macro2 (tré thanh Macro2), d6 chinh la phim tat dé thi hanh Macro2 (chi can bam Alt+M), Tén menu cé thé é hién duoc tiéng Viet) va khoang tring, diéu dé khéng 6 dau (thé cé duoc 6 tén macro hay ham tu lp. Tiép theo ta tién hanh tao menu con trong Macro2: evant tooo: dsl bt st ry and dase curd Cotman a Curen Menu Ren Coster Buten \ Steet { Stes / Steet )sheota/ han i Hinh 3-7: Tao cdc menu con 1 - Trong Categories (trong trvéng hop bang Customize van dang mo), chon Macros. 2. Tai Commands, chon Custom Menu Item (hinh 3-7), git trai va kéo chuét dén phan tréng 6 dui Macro2 (ving dug khoanh mau do). Bam phai chu6t vao Custom Menu Item trong menu me Macro2. Tai thyc don tat, dai tén trong Name thanh &Work Address (hinh 3-8). . Sau do vao Assign Macro dé chon macro thyrc hién. aa eR w Cudi cling la dong bang Customize. 33 Hinh 3-8: Di tén menu con, gan Assign Macro va menu duc tao ra. Tung ty nhu voi nut !énh trong thanh céng cu ty tao, menu moi tao duoc lwu gi trong Workbook do va tudn hién hiru trén ctra sé Excel, ké ca trwong hop ban da dong Workbook do. Khi ban bam vao menu thi Workbook chtra menu do tu déng mo ra va thyc hién lénh Se os | Delete fctes iceman) oo 2 Names Bcustom tuten Tea comand ated 9 __ Spr Biten Image ‘out of this dialog box te ateabar. “Paste Button Image cone B nagtounn mee te etc © oom Suge Bacon tee | & > dh Bi oom Defagt sho eoli pao a2 SIetow Omer) eo ow Woo “Teton ovens) sg go ae | tage ard vert leoaave (OQ ow @ Dp B Oysa? Hinh 3-9: Tao mdi va thay déi trong menu con a4 reese =S2 chee Cancel_| Erase J cker Hinh 3-10: Siva chifa hinh cua menu con Bang cach tién hanh tuong tw, ban co thé tao thém dug cac menu con khac. Ngoai viéc gan tén (Name) va thu tuc (Assign Macro), ban con co nhirng Iwa chon khac nhw sau: - Reset: Tra lai cai dat géc (hinh &] cung voi tén Custom Button). - Delete: Xoa menu con. - Copy Button Image: Sao chép biéu tugng cia menu con. - Paste Button Image: Dan biéu tugng cla menu con. - Reset Button Image: Cai dat lai hin cll menu con ([Z]). - Edit Button Image: Stva hinh ciia menu con theo y muén (hinh 3-10) - Change Button Image: Bai hinh cla menu con (hinh 3-9) - Default Style: Kigu mac dinh ctia menu con, gdm cé hinh va chiv. - Text Only: Chi cd chi trong menu con (kh6ng cé hinh). 3.4- Thay ddi lwa chon trong macro Néu ban muén thay déi cdc Iya chon chi tiét trong macro, bu dau tién ban vao menu Tools/Macro va chon Macros (hoac phim tat AlttF8). Cura sd Marco hién ra nhw hinh 3-114 voi danh sach toan b6 macro: Adsrose_ abe acto na: siacenanieaE i | [ioiet State cunt bese: Enter adress starting n cel Delte | Macosin: This Workbook Oprions Hinh 3-11: Ctra sé Macro va Macro Options... Sau dé chon tén macro ma ban muén thay déi, cé mét sé Iwa chon sau: - Options: khi ban chon Options thi ctra sé Marco Options hién ra nhu hinh 3-11. Ban cé thé thay déi phim tat va mé ta lai cng viéc macro trong Description - Edit: khi chon muc nay clra sé Microsoft Visual Basic (MVB) hién ra va tro chudt sé nhap nhay tai vi tri cla macro do. Ban co thé stra déi ndi dung theo y muén va tat nhién phai ding néu khng thi macro sé khong chay dugc. - Delete: xod macro nao ban muén. Trude khi xoa thi Excel sé hdi ban c6 chac chan x6a hay khong? - Macros in: hién danh sach cac macro tuy thudc vao cac trvdng hop chon trong hép cuén tha xudng. + All Open Workbooks: toan b6 workbook dang mé + This Workbook: chi trong workbook hién hanh. + Tén tng workbook dang du’g'c mé trong Excel Ngay phia duoi muc Macros in la Description (mau xanh) m6 ta su hoat dng cua ttrng macro trong dong phia dudi Chuwong 4 CUA SO VISUAL BASIC EDITOR (VBE) Khi ban tién hanh ghi macro dau tién, Excel sé tao ra module trong workbook do. Module duoc quan ly trong ctra sé Microsoft Visual Basic ctia Excel. Trong module dé chtra cac ma lénh (code) dug viét bang ngén ng VBA dé xay dng nén cac macro. Cac buréc thyc hién dé nhin thay module: 1. Tw menu Tools/Macro chon Macros. 2. Chon macro Address_abs va bam vao nut Edit. Civa sé Visual Basic Editor hay Microsoft Visual Basic (viét tat la VBE hay MVB) hién ra nhu hinh 4-1. Ctra sé VBE chinh la noi thyc hién cdc céng viéc trong dw an VBA cua ban. Ban cé thé thay ré duoc ndi dung tung thd tuc hay ham khi cuén xuéng. Hai chong trinh con ma ban viva tao bang chtrc nang Record New Macro duge hién thi chi tiét trong cla sd VBE. Ngoai ra, clva sd VBE con la méi truong dé ban xay dung mét chtre nang diéu khién khac nhu:: tao bang diéu khién tuy bién (UserForm), thay déi thudc tinh ctia cac diéu khién, 4.1- Cau tric ctra sé VBE Ctva sé VBE [a noi quan ly, lwu tro toan bé cac thi tuc (macro) cling nhu cac dy an xay dung trong VBA. Cau tric ctva sé VBE nhu sau: - Dong trén cing gém co bidu tong él va tén ctra sé Visual Basic Editor, tiép do la ten cla Workbook, cudi cing la dy 4n ban dang thu hién. ~ Dong ther hai la cac menu diéu khién chtva trong thanh menu ctia VBA. - Dong thw ba Ia thanh céng cy tigu chuan (Standard) duoc mac dinh xuat hién trong clva sé VBE (hinh 4-1). Ngoai ra, con mét sé thanh céng cu khac khéng dug hién thi san nhw Debug, Edit va UserForm (hinh 4-3), Tuy trudng hop cu thé ma ban cé thé cho hién thi va stv dung céng cu nay. Géc phia trén bén trai la chi tiét dy an cla ban (Project Explorer). Dy an bao gém tap hop cac déi tugng Excel Objects (gdm cac déi tvong trong Excel nhu: Sheet, This Workbook), Forms (cha céc hép ddi thoai tuy bién do nguOi str dung lap ra), Modules (chtra cac module con nhw Module, Module? ...). Module la noi quan ly, lwu trir cae tht tuc (sub) va ham (function). Méi module 6 thé chtra mét hay nhiéu Sub hoae Function. 37 Goc phia du¢i bén trai la clra sé thudc tinh (Properties window) ctia déi tuong dang duoc chon. Gém co tén cia déi tong, phia dui la thuéc tinh cla nd. Ddi tugng cé thé la This Workbook, cdc Sheet, UserForm hay Module, Class Module, [nov tits, su Rien ik ctcimememmen som ae] wan ds Soccer | mene Gecoey | | hata ene ©) ThisWorkbook Activecell. Fs "Lop DCCT-DKT K46" iors Sora rea cm serrate siete mi slr ae Module Hoi Apts | cinedeed 2" Stmageeyaeaamiay ei Hinh 4-1: Cifa 6 Visual Basic Editor (VBE hay MVB) aa an ee SSE ai I 3 é 5 8 {oi i Suid = , E £ 2 | 5 a 5 5 3 S 5 = 3 i SI § 3 5 é = 3 E £ g F | 8 I Hinh 4-2: Cac nat lénh trong céng cy tiéu chuan cua cifa sé VBE 38 : Céc thanh céng cy Debug, Edit va UserForm trong VBE Phan chiém dién tich lon nhat ctva sé MVB chinh 1a clva sé code (Code window). D6 la noi soan thao ma lénh (code) trong macro hay xay dyng User- Form. Tai do, néi dung tht tuc, ham sé dug hién thi trong module hoac trong ting déi twgng trong Excel. Co thé coi module la noi quan ly, lwu trir cdc tht: tuc (Sub) va ham (Function). Méi module cé thé chtra mét hay nhiéu thu tuc hoac ham. Phia trén ctva sé soan code cd Hép déi tueng va Hop thd tuc, sv’ kién. Van dé nay duoc dé cap cu thé hon trong muc 4-2. Ctra sé nam dui cling cé tén la Immediate, thong thudng khong hién thi trén VBE. Trong cla sd VBE, ban vao chon menu View/ Immediate Window (phim tat Ctrl+G). Ctra sé Immediate hién ra (hinh 4-7, hinh 4-8). Thong thwong, clea sé Immediate nam phia dui man hinh va ban cé thé di chuyén, thay déi kich thwoc theo y muén trong VBE. Van dé nay duoc dé cap 6 muc 4.3. éu chi'st? dung thuat ngi macro déi voi cdc chvong trinh ndi chung thi nhidu truéng hop sé khdng 6 nghia. Theo ding su lam viéc thi macro phai la thii tuc vi chi thti tuc moi cé thé dé chay duoc (Run Macro) va cé thé can thiép dén nhiéu déi tung, con ham ty lap (Function) thi chi lam viée trong mt 6 chtva tén ham. Chinh vi vay, chung ta stv dung thé tuc (Sub) va ham ty lap (hay Function) dé thay thuat ng@ macro ndi chung 4.2- Clva s6 soan thao code (Code window) Mot thd tuc duoc bat dau voi Sub va két thc bdi End Sub. Ham tu lap cing bat dau bang Font va két thuc boi End Function Cac tht tuc hodc ham ty lap néu duge lap ra dé co thé ding chung trong Excel thi ban.phai xay dung trong cac module téng quat (khéng phai trong Class Module). Dé tao ra module téng quat, ban vao menu Insert\Module 39 trong ctra sé VBE. Module ding chung cé Hép déi tuong voi tén la General, danh sach thi tuc trong m6éi module duoc liét ké trong Hép thu tuc, su kién (hinh 4-1). Ngoai ra, ban cn c6 thé xay dung tht tuc cho déi tugng la Workbook, ThisWorkbook vi nhiing su kién xay ra déi voi nd. B& biét chi tiét, moi ban xem phan lap trinh sw kién trong Excel tai Chuong 18. ws ThreeNunbe: / f Ose num Ae Tnveger, num? ko is nun = 10: num = 20: nung = 30 Msqbox "Gis tri truny binh la" & HyAverage (nul, numZ, nun) MsgBox "numi= " £¢ nwt £ Che(13) ¢ "nunz= " @ num2 ¢ Chr (13) & "numd End Sub ton Hyaverege (num, = punt = num + 1 MyAverage = (num1 + numz + numa) / 3 [Bini aon end Fu Quequan End Type Sub Hienthongtin() Dim Danhsach + Danh sach cdc chudng trinh dugc xay dung trong ting module 40 seas oe ineemetnesetpenta negBox "Hello World!” [ End Sub 1 Hinh 4-6: Thi tuc cita su kién d6i tugng Workbook mé ra (Workbook_Open) Sau Sub hay Function la tén ctia thd tuc hay ham. Tl khod Sub, End Sub, Function va End Function mac dinh cé mau xanh da troi (hinh 4-4). N6i dung bén trong thu tuc hoadc ham nhu sau Théng thudng, ngay dudi dong Sub hoac Function la dong mau xanh la cay voi dau ngoac don (‘) 6 dau dong, do la loi cht thich (comments), Loi chu thich khong Anh huOng dén macro va ban co thé thay déi ndi dung ctia né. Khi ban tién hanh ghi macro, tén macro va loi mé ta ndi dung ste dung tu dong xuat hién dudi dang cht thich Ngoai ra, ban cé thé tw bd sung chu thich trong qua trinh xay dung macro. Khi dé, ban sé dé dang hiéu duc cac buoc cling nhu muc dich thyc hién cla cac dong ma lénh Tiép theo la ndi dung ma Iénh, day chinh la néi dung chinh quyét dinh sw fam viéc ctia Sub hay Function. Ban co thé stva ddi, thém bot ndi dung ma lénh cho phu hop. Duong mau den lién dai cé y nghia phan chia cdc Sub (thu tuc), Function (ham) trong Module. Dau gach du6i (_) thinh thoang gp 6 cuéi déng ma lénh Trong trong hop ma lénh qua dai thi ban dung (_) dé nga dong, hung duoc hiéu la ma lénh van lién tuc. Trong muc 12-2 trinh bay chi tiét va cach ngat dong. Ngoai ra, dau gach dui con bat gap trong cdc thd tuc sw kién (hinh 4-6). Khi ban ghi macro phire tap hon, ban co thé gap mot sd ma lénh tw dong xuat hién. Excel ghi lai tat ca nhing gi ban thu hién mét cach cu thé nhat, ké ca nhiing thudc tinh dugc cai dat mac dinh trong Excel (dang st dung) z nhung ban khéng hé can thiép t6i. Ban cé thé luge bd nhiing ma lénh tha = do ma khéng anh hung dén két qua thu hién macro (xem tai muc 4.4.2) Dé r6 hon ban the hién vi du sau day: 1. Tai 6 B3 ban tién hanh ghi macro, dat tén macro la Kiem \_tra. 2.66 s6 1.2 vao 6 dé rdi tién hanh dinh dang lam dam, nghiéng sé, can s6 vao gitra 6 va chon mau dé cho sé trong 6 B3. 3. Khi céng viéc hoan thanh, ban chuyén sang 6 C3. Sau dé bam nut dtrng ghi macro. 4i Bay gid, ban kiém tra xem macro lam viéc nhv thé nao bang cach bam phim Alt+F 11. Trong civa sé VBE, ban mé module co chia thd tuc vira dure ghi va sé thay néi dung nhu sau (da Iuoc bét nhiéng ché tréng khéng can thiét): Sub Kiem_tra() it ‘Kiem_tra Macro 5 ‘Macro recorded 12/31/2006 by PhanTuHuong Range (“B3”) .Select ActiveCell.FormulaR1Cl = “1.2” Range (“B3”) .Select 3 Selection. Font.Bold = True Selection.Font.Italic = True With Selection HorizontalAlignment = xlCenter End With Selection.Font.ColorIndex = 3 ; Range (“C3”) .Select End Sub Trong tht! tuc trén, ban sé thay nhing doan mé lénh tu nhién xuat hién (gach 6 gitra). D6 chinh la nhieng cai dat mac dinh san trong dinh dang 6 cia Excel ma chting ta khéng hé can thiép toi. 4.3- Ca sé Immediate Truc khi nghién ctru vé ngon ngi VBA, ban hay xay dung vén tir vung trong VBA cho ban. Lam thé nao dé ban thyc hién cong viéc dé nhanh chong va khong bi mét mdi? Lam thé nao dé ban hoc duoc nhitng cau lénh VBA? Ctra sé Immediate sé gitip ban tra Idi cac cau hdi trén. Tai cla sd Immediate, ban nhap vao cau lénh VBA don gian, sau dé bam Enter, Excel sé kiém tra 42 f va thu hién cau lénh dé. Néu ban muén tim hiéu thém thong tin thi ban thém dau hdi (7) & trude thay vi gd chi Print, két qua sé thé hién ngay & dong duéi (hinh 4-8). Voi tht tuc hoac ham, ban phai xay dyng chuoing trinh theo duing quy dinh cla ng6én ngi VBA thi moi co hiéu luc. Qua trinh thy hién (thi hanh macro, tinh todn ham) dién ra lién tuc va rat nhanh, ban khong thé theo déi, kiém tra tung buéc mét cach binh thudng. Cai hay cia ctra sd Immediate la cho phép thy hién tiyng cau lénh mot, két qua thé hién ngay trén cla sd Excel hay cla sé Immediate. Definition Shift+e2 Last Position Ctr+Shift+F2 num2 as Inted 20: num3 = 30 (tri trung binh la" ¢ biol, num2, num3) t=" © num1 ¢ Chr (13) hum2 © Chr (13) ¢ "num =) Object Browser F2 Immediate Window Ctrl - Locals Window » Watch Window Loc: te I Nganh @ceT Oo so) P12) wey \ Steott \ Sheet? / shect3 / FRe n Hinh 4-8: Ctra sé Immediate 43 Vi du tai hinh 4-8, tleng cau lénh thuc hién céng viéc nhu sau: Worksheets ("Sheet2”) Activate | ‘Kich hoat Sheet2 Range (“A2”) .Select ‘Chon 6 A2 (b6i den) Range (“B5”) .Value= “Nganh DCCT” ‘Thé hién “Nganh BCCT” trong 6 BS Range (“BS”) .Font..ColorIndex = 3 ‘Gan mau dé cho chi tai 6 BS Range (“B5”) .Font.Bold = True ‘Gan chit dam tai 6 BS Trong qua trinh thyc hién ma gap 16i, cla s6 VBE sé théng bao ngay. Vi du nhw hinh 4-9, bang tinh Sheet4 kh6ng tén tai trong Modau.x1s, ctva sé VBE sé bao Idi. Hinh 4-10 thong bao khi ban chon mot sheet khéng tén tai trong workbook. ?ActiveYorkbook .Name Modau.x1s ?Sheets. Count 3 ?Activesheet. Name Sheet2 WorkSheets("Sheet4”). Select Hinh 4-10: Cita sé bao 181 4.4- Hiéu chinh trong VBE Ctra sé VBE (hinh 4-1, 4-4) co khu vuc soan thao code trong gan ging nhu Word, ban c6 thé dé dang tao nhiéng thay ddi trong dé nhu bd sung hay bét di ndi dung, tdi wu, rut gon ma lénh thea khéng can thiét,... Cac phim mui tén trén ban phim duoc st dung dé di chuyén chudt lén, xudng, sang trai, sang phai, sao chép, cat dan, tim kiém, thay thé,... giéng nhu trong Word. Dui day la mét sé thay déi chinh cé thé thuc hién duoc: 44 4.4.1- Thay déi tén cua thi tuc Trong trvong hop ban muén thay ddi tén ctia tht: tuc vi ly do nang cap chuong trinh hay vi nhiing ly do khac, ban khéng thé thue hién cdng viée dé trong Excel ma bat budc phai thy hién trong ctra sé VBA. Vi dy, ban co thé thay ddi tén macro Address_abs thanh Dia_chi chang han, chi can-g6 ndi dung Dia_chi thay thé Address_abs trong dong Sub Address_abs(). Dong thoi, ban cing stra ndi dung ghi cht: phia duoi. Ban co thé kiém tra két qua stva ddi trong hop Macros Name ctia ctra sé Macro khi bam vao phim Alt+F8 tai Excel. Range ("B3") ActiveCell.Fo: aRICL = "Nguye va Hinh 4-11: Thay déi tén cia th tuc 4.4.2- Stra déi ma Iénh trong thd tuc Nhu da dé cp, chtrc nang ty ghi macro sé ghi lai toan bé nhéeng cai dat mac din trong Excel. Vi vay, mét sé ma Iénh sé khong can thiét va nén xoa bd. Ching ta rut ngan tht tuc Kiem_tra lai bang cach xod bd nhiing ma lénh thtva (duoc gach 6 gira), cach thc hién giong nhv o trong Word. Két qua nhu thd tuc duoi day: Sub Kiem_tral() ‘Kiem_tra Macro ‘Macro recorded 12/31/2006 by PhanTuluong Range ("B3”) .Select ActiveCell.FormulaR1Cl = “1.2” Range ("B3”) .Select Selection.Font.Bold = True Selection.Font.Italic = True With Selection -HorizontalAlignment = x1Center End With Selection.Font.ColorIndex = 3 Range (“C3”) .Select End Sub Ban hay chay tht th tuc trén, chac chan két qua van nhu luc truéc khi stra. Nhu vay, sau khi ghi macro ban nén loai bé nhing doan ma lénh khéng can thiét, tranh viéc Excel thuc hién nhing cong viéc thiva va tht tuc dai dong. Bé thurc hién dug viéc loai bé nhirng ma Iénh thiva thi ban: phai so sanh gira cong viéc da thc hién tl’ ban phim voi ndéi dung ma cla macro ghi lai, ti do tim ra sy khdc nhau gidra chung. Ngoai ra, ban phai co nhivng hiéu biét nhat dinh vé VBA moi co thé chinh stra mot cach hop ly va khong sai sot. Chting ta lai quay tro’ vé tht! tuc Address_abs duoc ghi tai muc 2.1, ndi dung thi tuc nhw sau: Sub Address_abs() ‘Address_abs Macro ‘Enter address starting in cell B3 Range (“B3”) .Select ActiveCell.FormulaRiCl = “Nguyen Van Hung” Range (“B4”) .Select ActiveCell.FormulaRICl = “Lop DCCT-DKT K48” Range ("B5”) .Select ActiveCell.FormulaR1Cl1 = “Truong DH Mo Dia chat” Range (“B3:B5”) .Select Selection.Font.Bold = True Selection. Font.Italic = True Range ("B6”) . Select 5 End Sub Ban da thay thu tuc Address_abs tdi wu chua? Cau tra loi la chua. Ban cé thé rut ngAn thd tuc do lai ma van dam bao tht tuc hoat déng binh thuong Ta co thé thay hai dong lénh: Range (“B3”) .Select ActiveCell.FormulaR1Cl = “Nguyen Van Hung” bang médt dong nhu sau: Range (“B3”) .FormulaRICl = “Nguyen Van Hung” Két qua stra déi nhu sau: Sub Address_abs() ‘Address_abs Macro 46 ‘Enter address starting in cell B3 Range ("B3”) .FormulaRICl = “Nguyen Van Hung” Range (“B4”) .FormulaRICl = “Lop DCCT-DKT K48” Range (“B5”) .FormulaR1Cl = “Truong DH Mo Dia chat” Range (“B3:B5”) .Font.Bold = True she ele BS ial Range ("B3:B5”) .Font.Italic = True Range ("B6”) Select End Sub Nhu ban thay, th tuc d@ duge rut ngdn dang ké. Bay gio chung ta bd sung thém thdng tin vé tudi, qué quan cho anh “Nguyen Van Hung” nay vao cac 6 B6, B7 & phia duoi. Két qua thd tuc da bé sung nhu sau Sub Address_abs1() \Address_abs1 Macro ‘Enter address starting in cell B3 Range ("B3") .FormulaRICl = “Nguyen Van Hung” A ach Ct Range (“B4”) .FormulaR1Cl = “Lop DCCT-DKT K48” a Range (“B5”) .FormulaR1Cl = “Truong DH Mo Dia chat” | Range (“B6”) .FormulaR1Cl = “Tuoi: 21” 4 Range (“B7”) .FormulaR1Cl = “Que quan: huyen Gia Loc - i Hai Duong” (cing 1 déng) Range ("B3:B7”) .Font.Bold = True Range ("B3:B7”) .Font.Italic = True Range (“B8”) . Select End Sub é kiém tra thd tuc trén hoat dong nhu thé nao, ban di chuyén chudt vao trong bat clr néi dung nam trong tht tuc do (tén thts tuc phai hién thi trong Hop thu tuc, sy kién), sau dé vao menu Run va chon Run Sub/UserForm (hoac. phim tat F5) nhu hinh 4-12. Sau dé vao View/Excel (phim tat Alt+F 11). Luc dé, clva sd MVB van hién hivu trong Exce!. Dé déng ctra sé VBE va tro vé Excel, trong civa sé VBE ban vao menu File, sau do chon Close and Returh to Excel (phim tat Alt + Q). | 47 Range ("B4") .FormuleRICi = "Lop DCCT-DET K43" Range ("B5") .FormulaRiC1 = "Truong DH Mo Dia chat" Range ("B65") .FormulaRici = "Tuoi: 21" Range ("B27") .FormulaRt "Que quan: huyen Gia Loc ~ Hai Du Range ("B3:B7") .Font Bold = True Range ("B3:B7") -Font.Italic Range ("B8") Sel End ag" Nguyen Vane Heng | Lop DCCPOKT Kt Trion DH Mo Dia chat | Tuoi: 21 Que quan: Imyen Gia Loc - Hai Luong, Hinh 4-13: Két qua thyc hién thi: tuc Address_abs1. 4.4.3- Tao thém Module trong cia s6 VBE Néu muén bé sung thém mt module, ban vao menu Insert va chon Mod ule. Ngoai ra, ban co thé bd sung UserForm (bang dieu khién) hay Class Module theo y mudn. Cach xay dyng UserForm dugc dé cp trong muc 19.2 =e yBAProject (Addre, 24 Wicrosoft Excel OF BH) Sheet (Sheet - seeB3") FormulaRicl = "Nguyen Van Hinh 4-14: Thém mét module mdi 48 Se aa ~adaeaienubieh : Khi bam vao menu Module, mot module réng sé duoc tao ra voi ten mac dinh theo thir tu Modulet, Module2, Modute3,... Ban 06 thé xay dyng cac ham va thi tuc 6 bén trong Module mét cach thoai mai Modules Module (Address _abs Alphabetic | Categorized | ' Excel Objects a. BE) Sheet1 8} sh —.___ Hinh 4-15: Module3 duc tao ra va ban thay tén bang Bosung Dé dé quan ly, ban cd thé déi tén cla module va duoc tao bang cach chon tén module, sau dé vao ctva sé thudc tinh Properties dé thay déi tén thanh Bosung (trong Name). Sau do, ban co thé xy dyng cac thi tuc hay ham trong module Bosung nay. Ghi chu: Méi module cé thé chwva duoc nhiéu thu tuc hoac ham. Voi nhiéng dy an lon, ban nén co phuong phap quan ly module mét cach cy thé, ré rang. Nén phan chia ré rang nhom module chtra tht tuc, module chtra ham va dat ten cho module do. 4.4.4- GO bo module Khi muén g& bé mét module nao dé trong dy an VBAProject, ban chon tén menu do (vi du nhu Bosung). Sau dé ban bam chuét phai va thyc don tat hién ra, chon Remove Bosung... (hinh 4-16). Khi dd, clra sé MVB hién ra héi ban cé xuat module Bosung true khi g& bé nd? Ban chon Yes dé lwu lai truéc khi g& bd (néu chon No thi sé khdng Iuu lai). Module Bosung sé Iwu lai voi tén *.bas. Ban co thé mé file via dug luu lai do bang VB 6.0 hoac tl Notepad. 49 [i Sata eal ‘yew cate Mearogetteopgten., | | iS | oe | b Pham_eae 0, ange ("C5") Select i ; Jetivecel! Formlngi¢l = "Helio Se 89arg Beara bse Range ("C5") Select i Selection. Font Bold L. | Selection.Font Colorindex ~ 9 cl Slur Setection.Fone aaa piece (ome) fate = “arial feta the ane ved code to tee = ery ote coeds es Hinh 4-17: Mé module Bosung.bas tiy VB 6.0 ‘Sub Phim_tal0) Phirm_tat Macro acio recorded 3/28/2007 by Phan Tu Huong Keyboard Shorteut: Chis] Range(C5"), Select ActiveCell.FormulaR1C1 = “Hello Wort!" Range((C5") Select Selection. Font Bold = Tue Selection. Font.Colortndex Hinh 4-18: Mé module Bosung.bas tif Notepad Chuong 5 LAM ViEC VOI FILE EXCEL CO CHUA MACRE 5.1- Sw dung chtrc nang Security May nam gan day, do virus macro phat trién nén Microsoft da bd sung thém ché dé an toan trong cdc &ng dung. Che nang Security diéu khién sv lam viéc ctia macro, tlrc 1a co thé cho macro hoat déng hoac khéng hoat dong. Voi chtre nang diéu khién d6, ban sé yén tam hon khi str dung Excel trong céng viéc. Dudi day la cach sl dung chtrc nang Security trong Excel 1. Vao menu Tools/Macro va chon Security (hinh 5-1), ctra s6 Security hién ra 2. Trong Security, tai tab Security Level c6 4 truéng hop chon nhu sau: - Very High: Dat ché d6 an toan rat cao, cac macro kh6ng thé thurc hién duge, chi triv macro ctia Office. Khi md file cé macro thi sé hign bang théng bao nhu hinh 5-2. Ndi dung thong bao cac macro da bi v6 hiéu hoa - High: Dat ché d6 an toan cao. Chi nhitng macro dug xac nhan mdi cd thé thc hién, céc macro khac bi vo hiéu hda. Dé c6 macro duge xac nhan, ban phai dang ky trong menu Tools\Option\Security\More Macro\Trusted Pub- lisher. Khi ban m@ file cé macro thi sé théng bao cac macro da bi v6 hiéu hoa nhw hinh 5-3 ~- Medium: Dat ché d6 an toan trung binh. Khi chon tru@ng hop nay, néu mé file c6 cha macro thi Excel sé canh bao nhw hinh 5-4. Ban cé thé Iva chon Enable Macros dé macro hoat d6ng, hodc Disable Macros dé macro khdng hoat déng. Trong trwong hop file cla ban khéng ste dung macro, néu khi mo Excel canh bao nhu hinh 5-4 thi file clia ban da bi nhiém virus macro. - Low: Khéng dat ché d6 an toan, ttrc la Excel khong canh bao bat ctr van dé gica Nhu vay, khi ban st dung VBA nén dat Security Level & mirc 49 Medium hoae Low. Khi dé cdc tht tue hode ham moi hoat dong duge. Rat nhiéu 51 trwong hop macro khéng hoat dong dug khi dé ché dé Security Level & mitre do Very High hay High ma nguoi st dung khdng r6 nguyén nhan. ‘Geutjieal!| romances iden High. crly mazes eaated n bus ‘eran. Mother nope and reir Obigh. Cry signed maces from tasted sources witb alonedto ron. Unsigned macros ere autonaizay disabled conchoose whether ornst ton pstekisiy unsafe ted fom patertialy virus scanning yo ald ) Lv rot recorerended). Yeu are nat pot Urgale maces, Use this settng only & yu site nstalled, cr youhave checked the you open. 2 woes. 2 ecarfew oor, fo High and a digtally signed Trusted Certéicate is not nge the security levelto 3 lower setting (nck reccrnmended), or ‘a certificate issued by a Certficate Authority attached to the macros. To run the macros, cl \ IMacros are disabled because the securty level <2) request the macros be sioned by the author y to disable macros, but if the Hinh 5-4: Canh bao macro chifa trong file Trong Excel 2007, ché d6 an toan cé khac do nhiéu thanh phan hon va giao dién cling khac so véi Excel 2003. Dé cai ché d6 an toan, ban chon Excel Options ti nut Office Button (nut hinh tron to phia trén, bén trai cla civa 86 Excel 2007). Sau dé, chon menu Trust Center trong civa sé Excel Op- tions (hinh 5-5a), tiép tuc chon muc Trust Center Settings... Tiép theo ban tuy chon nhiing cai dat trong civa sé Trust Center (hinh 5-5 b). Ban sé thay ngoai macro, Excel 2007 con thiét lap déi voi ActiveX, Add-ins, Message Bar... Cai dat mac dinh trong Excel 2007 la toan b6é macro khdng hoat déng, néu ban dinh chon muc nao thi hay bd danh dau trong hép kiém tra. Ban co thé cai dat chi tiét tai cc muc khac. Trusted Publishers Macro Settings Trusted Lo I For macros in decurnents not i Developer Macro Settings ore. | Teast Centers (b) Hinh 5-5: Menu Trust Center va cdc menu chifa trong Trust Center O ché dé cai dat méc dinh, khi ban md file co chiva macro, Message Bar hién ra canh bao vé an toan. Khéc voi Excel 2003, tuy cai dai khong cho macro hoat déng nhung Excel 2007 van cho phép hoat déng tré lai khi ban 53

You might also like