at TAS. PHAN TL HUONGPHAN TU HUONG
Lap Trinh
(In tai ban)
NHA XUAT BAN THONG KE
HA NOI, nam 2009LOI 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.
3wa 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 gidMUC 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
5Chuong 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
a8.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
Be10.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 khac13.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 192Chuong 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
20017.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
246Chwong 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
30019.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
38220.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
487Chuong 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
20Trong 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 OK7. 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
22Bam 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
242.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,