PHAN TU HUGNG
Lap Trinh
(Visual Basic for Applications)
(In tai ban)
NHA XUAT BAN THONG KE
HA NOI, nam 2009LOI NOI DAU
Hién nay, phn mém Excel da tro nén than thude déi voi nhiing ngw
thong xuyén lam viée véi bang tinh va biéu do. Khé néing tinh todn, phan
tich va wit ly dit liéu tuyét voi ca phan mém Excel c6 thé gitip ching ta gidi
quyét duoc nhiéu loai céng viée khéc nhau. Bai cb nhiéu stich tiéng Viet hudng
dan ste dung phan mém Excel tir co ban dén nang cao, ting dung tir nginh kF
thudt dén linh vive kinh té. Tuy nhién, phén lon sach a6 chi huéng dén khai
théc cdc céng cu va chite nang sén c6 trong phan mém Excel,
Voi doi hoi cita cong viee ngay cang cao thi viee stt dung céng cu va chite
nang san cé trong phan mém Excel nhiéu khi rat khé khan hode khéng thé dap
ting duge. May man thay, Microsoft dé hé tre ngén ngit lap winh Visual Basic
for Applications (goi tat la VBA) tich hop trong phan mém Excel (cing voi
cdc phan mém khac trong goi Office). La ngén ngit lap trinh Visual Basic (VB)
phat trién trong ting dung, VBA da gitip phan mém Excel cé kha nang tuy bién
cao, vot ra khoi gibi han bang tinh thong thong. Sit dung VBA cting voi céc
céng cu san cé trong phan mém Excel gitip ching ta co thé gidi quyét doe
nhiéu bai todn phite tap voi khé nang tw déng héa cao, sin phdm c6 thé trong
duong vi céc phan mém chuyén dung. Ngon ngit VBA rét gdn giti voi VB,
trong khi dé VB la ngén ngit duve str dung pho bién & Viet Nam cing nhu
todn thé gidi vi dé sit dung va ngudn sdch va, tdi liéu phong phi. Mét sd
trwong dai hoc trén thé gidi da dua VBA vdo gidng day chinh thitc. Con tai Viet
Nam, nhiéu ngwoi cing rat quan tam dén ngén ngit nay,
daic biét la nhitng
ngudi lam viée trong linh vuc dia chat, khai thic mo, xdy dung, giao thong,
thuy loi, tai chinh, ké todn, kinh té,... Hién nay, Truong Pai hoc Mo Bia chat,
Tredng Dai hoc Giao théng vn téi, Truong Dai hoc Xay dyng da dia ngén
ngit VBA vao gidng day trong mot sé chuyén nganh. Hon nita, khi nam duge
VBA trong Excel, ban cé thé dé dang nam bit VBA trong AutoCad, day la mot
phan mém chuyén vé linh vue dé hog rat néi tiéng thudng duge sir dung trong
cde ngdnh kF thudt. Tuy nhién, sach huwéng dan stv dung VBA bang tiéng Vier
thi rat hiém hode chi duge dé cép rat han ché trong cdc tai lieu c6 lién quan
Vi vay, cudn sdch nay hy vong dap tmg mét phan nhu cau cia nhiing ai quan
idm dén ngén ngit VBA noi chung va ting dung trong Excel néi riéng
3Trong lan tai ban nay, cudn séch dé duge sita aéi, bb sung cho phi hop
vd dé hiéu hon. Mét.sé doan code dugc trinh bay lai cho hop ly: nhém gitip ban
doc dé ding tiép can hon voi ctta sé kim vige cia VBA
Toi xin cém on cée thanh vién trong dién dan www giaiphapexcel.com
va dic biét la Ban quan tri da gép ¥, cung cap nhiéu kién thite cing nh ede
san phdm ting dung ctta VBA dé cudn sich duoc hodn thién. Téi ciing xin giti
Ioicdmon dén cde anh Lé Van Duyét (Ci ‘ng ty TNHH Dunlopillo - TPHé Chi
Minh), Nguyé én Duy Tuan (Trrong Pai hoc Cong nghiép Ha Néi), Dao Viet
Cudng (Cong 0» Co phan Du lich va Thuong mai Vinpearl ~ Nha Trang),
Nguyén Van Son (Cong ty Cé phdn Nay dung bat cing - Hai Phong)... da tan
tinh gitip dé t6i hodn thanh cudn séch nay,
Tée gidMUC LUC
Chwong t: GIG! THIEU VE VISUAL BASIC FOR APPLICATIONS
Chuong 2: GHI VA THUC HIEN MACRO
2.1- Tao macro bang chire nang Recorder Macro
2.2- Thue hién macro khi sir dung bang diéu khién macro
2.3- Thue hién macro khi sir dung phim tit (shortcut key)
2.4- Tam dimg khi thyc hign macro
Chuong 3: CACH THUC HIEN MOT MACRO DON GIAN
3.1- Thue hién macro tir m6t déi wrong trong worksheet
3.2- Thue hién macro tir nit lénh trong thanh cong cu
3.3- Thuc hién macro ttr thanh menu
3.4- Thay déi Iya chon trong macro
Chong 4: CUA SO VISUAL BASIC EDITOR (VBE)
4.1- Cau trite ctra sé VBE
4.2- Cita s6 soan thao code (Code window)
4,3- Cita 36 Immediate
4.4- Higu chinh trong VBE
4.4.1- Thay ddi tén ctia tht tuc
4.4.2- Stra dOi ma 1énb trong thi tuc
4.4,3- Tao thém Module trong cia sé VBE
4.4.4- Gd bo module
Chuong 5: LAM VIEC VOI FILE EXCEL CO CHUA MACRO
5.1+ Sir dung chite nang Security
5.2- Str dung cdc chong trinh diét virus
5Chuong 6: UU, NHU'O'C DIEM CUA CHUC NANG
TU GHIMACRO
6.1-Uu diém cita chtte néing tr ghi macro
6.2- Nhuge diém cia chite nang ty ghi macro
Chuong 7: NGON NGU VISUAL BASIC FOR APPLICATIONS
7.1- Cac déi tong (Objects)
7.2- Cac phuong thire (Methods)
7.3- Cac thudc tinh (Properties)
Chuong 8: MOT SO DOI TUGNG CO BAN TRONG EXCEL
8.1- Déi tugng Application
8.1.1- Thudc tinh Calculation
1.2- Thude tinh ScreenUpdating
8.1.3- Thude tinh DisplayAlerts
8.2- Déi tuong Window
8.3- Déi tuong Workbook
8.4- Doi tong Worksheet
8.4.1- Xac dinh
ac théng tin trong Worksheet
8.4.2- Nhdp dit ligu vio trong Worksheet
8.4.3- Diéu khién Worksheet
8.5- Doi tugng 6 (cell) va khdi 6 (range)
8.5.1- Thude tinh Range
8.5.2- Thudc tinh Selection
8.5.3- Thudc tinh Cells
8.5.4- Thude tinh Offset
8.5.5- Thude tinh Rows va Columns
8.5.6- Cac kiéu thude tinh khac trong tham chiéu
6
a
58
60
62
66
67
67
688.5.7- Xac dinh thén,
8.5.8- Tao ving truc tiép (khdng sir dung VBA)
8.5.9- Tao ving bang cach str dung VBA
8.5.10- Lam viée véi nhiéu ving
8.5.11- Di chuyén, sao chép va xoa 6 (khdi 6)
8.5.12 Mot s6 thude tinh hitu ich cita déi tong Range
8.6- Tra citu va tham khao ddi tuong
Chwong 9: KHAI BAO VA SU DUNG BIEN TRONG VBA
9.1- Khai bao kiéu gia tri cho bién
9.2- Cac toan tir trong VBA
9.3- Biéu thire
9.4- Gan gia tri cho bién, hing va déi trong
9.4.1- Gan gid tr] cho bién
9.4.2- Gan gia tri ld hing s6 cho bién
9.4.3- Gan gid tri cho bién déi trong
9.4.4- Hudng dan truyén tham s6 bang gid tr
9.5- Khai bao va sir dung mang (Array)
9.5.1- Mang cé kich thuéc cé dinh
9.5.2- Mang dong
9.6- Sir dung Type dé khai bao bién nguai ding
9.7- Xéc dinh kiéu bién bang ham TypeName
9.8- Vong dai cia bién
Chuong 10: SU DUNG TRG GIUP TRONG VBA
10.1- Tro gitip truc tiép trong méi trudng VBA
10.2- Sir dung hép thoai tr gitip voi chit dé
86
87
87
88
89
93
96
1s
8
11910.3- Sir dung vi du mau cita Excel
10.4- Sit dung Internet
Chuong 11: THIET LAP MOI TRUGNG LAM ViEC
L1.1- Sir dung Options
1.2- St dung VBA. Project
Chwong 12: PHUONG PHAP TU XAY DUNG MACRO
12.1- Xay dung macro
12.2- Ngiit dong khi ma lénh qué dai
6
12.3- Cac
i xy ra khi xay dung macro
Chuong 13: SU DUNG VA XAY DUNG HAM TRONG VBA
13.1- Str dung céc ham sin cé trong Excel
13.1.1- Goi cdc ham trong Worksheet tir VBA
13.1.2- Chén ham s6 trong Worksheet vao 6
13.2- Str dung cdc ham trong VBA
13.2.1- Ham todn hoc
13.2.2- Ham xae nhan dit ligu
13.2.3- Ham chuyén ddi gitta ede kiéu dit ligu
13.2.4- Ham vé xi ly chudi
13.2.5- Ham dinh dang dit ligu
13.2.6- Ham tao s6 ngau nhién
13.2.7- Ham vé ngay gid
13.2.8- Ham vé dé hoa
13.2.9- Ham chuong trinh
13.2.10- Cac ham khac
120
121
123
12413.3- Xay dung ham trong VBA
13.3.1- Phan biét ham ty lap véi thi tuc
13.3.2- Cach xdy dung ham
13.3.3- M6 ta ndi dung ham
13.3.4- Tao va str dung ham trong Add-Ins
13.3.5- Goi ham ttt thi tuc
Chuong 14: CAU TRUC DIEU KHIEN
14.1- Diéu khién c6 didu kign
14.1.1- Diéu khién IF
14.1.2- Diéu khién Select Case
14.1.3- Diéu khién And
14.1.4- Diéu khién Or
14.1.5- Diéu khién sir dung nhiéu And va Or
14.2- Diéu khién vong lap
14.2.1- Diéu khién Do ... Loop
14.2.2- Diéu khién Do While ... Loop
14.2.3- Diéu khién Do ... Loop While
14.2.4- Diéu khién Do Until ... Loop-
14.2.5- Diéu khién Do ... Loop Until
14.2.6- Diéu khién For ... Next
14,2.7- Diéu khién For Each... Next
14.2.8- Lénh thodt (Exit)
14.2.9- Vong lap ling
14.2.10- Diéu khién With - End With
165
165
165
169
170
176
178Chuong 15: HOP THOAI TRONG VBA
15.1- Hp théng bao Message box (Msg Box)
15.1.1- Cac loai théng diép trong buttons
15.1.2- Théng sé cia nut diéu khién
1.3- Cac biéu trong théng digp trong Msgbox
15.1.4- Xay dung tham sé cho MsgBox
15.2- Phuong thite 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 xtr ly 18i
16.2.1- Xae dinh va lim viée véi nhimg 13i xay ra
16.2.2- C;
+h “bay” 16i chi tiét bang On Error
16.2.3- G6i gon xr ly 16i
16.2.4- Nhiing trudng hop nén bé qua 13i
16.2.5- Xac dinh Idi cu thé
16.2.6- Léi do ngudi sir dung cé y
16.3- L6i lap trinh va ky thuat xtr ly 164
16.3.1- Cac loai 16i lap trinh
16.3.2- Xac dinh 1éi va ky thual xir ly 13i
16,3.3- Str dung c6ng cy stra Ii cia VBA (VBA Debugger)
16.4- Cac phuong phap giam 13i
16.5- Nhitng théng sé vé ma lénh Ii trong VBA
Chwong 17: LAP TRINH SU KIEN TRONG EXCEL 2003
17.1- Chi din vé cdc thil tue cia su kién
17.2- Lam hitu hiéu va v6 hiéu cdc su kién
194
194
195
195
195
197
200
217
224