Tải bản đầy đủ (.pdf) (287 trang)

Lập trình VBA trong excel cho người mới bắt đầu Phan tự hướng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (30.32 MB, 287 trang )


fr$0r?0 tffru t0fi$H

0EEs

}TMKru
ru0ut
HUUIdvt


rvnHr Ax y^

cOH voH) Nys rynx yHN
ffi
.]t

nv0 rpn t$ilt t0ntlff tlHc

HUlildvt

tlil0nff nI ilultd 'sut


9

IecxA dgqd IeIS

3uoq4 queqJ

irl


uqnb

u"g

UgIp I€G

ugrl
iuo ru?r quQql ugqc ury

:llurue

lqr cip oeql lgl

@

Suqqc ugp l4S 3uq1rn'r' urx qcYS ugnc 9^

f

d93

to6

'quiu urlr cgr,t 3u9c 19't doq
nt gqt 9c ueq 9p.
uoJl nglqu 19J u3
3uor1 yg^ qulrl
Prxg dPt4d ry$ i4

Vr


qu

uYnb ung

9p

,+s

I9l

lq

)v

'(g/,w) suotlrsctlc[dy to! trsug IDnsrA
rq8 qcgc 'nqu lgru rqn8u oqc legl u93
p ?s qogs ugnc SunP IQN'0102'1002

urgqr Suns'gq'lpqu dPc 9c q^ qrPS

,(eu ugq ugl uECl I91 roB 3uor1

.yg^ quIrl dgl Sugnp uQ3 o(^ r.gnq I,9III
rou e^ ouc 3uon1 19qJ 93 nQq Icl uJ oq
lrlp pp urT tgt'vgA 4su u93u

uiqcgt

1.9,r


doq nqd leIQ clp q't bunp

r9'r' ogt'r'

IOIA ler 913 rgp ogP 3u9P u?P VgA
Suori Suoqd ugrt rqn8u 3u.1qu 3uor1

'GgA) uottouyddY
Tacrg lbsotLtll11
n{ crsag U)nsr1 43u ug8u I.9^ qu1n dQ1 Supu 9q{ oli pV uqc€lc
I9u ?q t-YI1
qu1'u 3u6nqc-.q- u9q4 ',(gu r.or8 gq, ,q- 9s qull Sugq
Y'lVI 'q-uip tg(nb u f1 ugnb pqu oqo lelql ugr
c93
4t nx '4t upnb cnqc 91c91ovql
Y
tgur RI rqr uer rupu qulr SuAqu gc

rgqd

e,r,

SunP 4s sonP uoc 9u 'doq ?ugnrr nglqu

ulgur ugqd 'tgqc fqo ugqd quqqi t
uglq gqd urgir ugqd 9q q1 SueP ec

iP)xg lpsotcrl/g


ryn7u 3w-tt15J - top uoq

u'tgu't u7t1d 3ur3p

{n8

:tn3 upllL

nvc l9N lQl



8xce12003...........
5.1.2. Excel2007 vh 2010..........
5.2. Antohn khi ldm viQc v6'i tfp tin Excel
5.3. Sil dyng cdc chuong trinh diQt virus..........

.."...'..""

4'7

8.s.7. c

'."..'..".........48
...'...'..'..'.' 50

8.5.8.:

8.5.9. T


........ 53

8.5. 10. '

5.1.1.

8.5. t 1. l

uu, NHugc DlEv cun cHuc NArue ru GHI MACRO
6.1. Uu dii5m cira chirc ndng tg ghi macro (Record Macro)
5.2. Nhuo.'c cti,5m cira chrlc ning tr,r ghi

'

8.5.12.l

.......... 56

macro

...........51

8.5.13. I
8.6. Tra

p6r rUqNG LAP TRiNH vBA cuNG vor
PHUONG

THUC, THUOC TJNH CUA


VBA..........
7.2. Phuong thilc (Method)...............
7.3. ThuQc tinh (Property) ............

vOr s6 o0r ruoNc co

...." 59
'......"-.-...'.."--.62
........ 65

....-.'.....".""' 67
Application
.........""' 68
8.1.1. ThuOc tinh Calculation............
..'....""' 69
8.1.2. ThuQc tinh ScreenUpdating.......
..............'.""" 69
8.1.3. ThuQc tinh DisplayAlerts
."" 70
...........'.'.....
8.2.Ddituo.ng Window
.........""-"""'72
8.3. D6i tuQng Workbook
.."""""""""'73
8.4. DOi tuo.ng Worksheet
.....'.""""' 73
8.4.1. Ei6u khiiSn Worksheet...........
"""'75
8.4.2.Xdc dinh c6c th6ng tin trong Worksheet....."....'
""""75

8.a.3. NhAp dfr'liQu vho trong Worksheet
""""""""""'76
8.5. Ddi tuo.''rg Range (kh6i 6) vd Cells (6)....'.."'."'

S.1. DOi tuo.ng

Selection....'.......
8.5.3. DOi tuong Cells
8.5.4. ThuQc tinh Offset:.
8.5.5. ThuOc tinh Resize
8.5.2. DOi tuo-ng

- ' Ddi
^8.5.6.
^a' tuo.ng
,o Rows
Rnrvq vh
vi Columns
Colnmns
8

9.1. Khai b6o I

9.2. Cic roiin

""""""""""'7'7

"""""""""79
""""""""' 80
""""""" 8l

""""""" 82
,.,,.....,. 84

r,

9.3. Biiiu thri'c

9.4. Gin

ri

gi6,

9.4.1. ce

BAN TRoNG EXCEL

8.5.1. Phuong thf'c Select vh phuong ph6p xdc dfnh ming

vi

KH}

CHUNG

7.1. D6i tuo.ng l4p trinh

cfu

'


9.4.2.

Ge

9.4.3. G6

9.4"4.Hu
9.5. Khai b6o v

9.5.1. Md

9.s.2.MA

9.6. Sri dung T1

9.7.Xdc clinh ki
9.8. Vdng ctoi

cr

10.1. Tro. girip tr

10.2. Sn'dpng hr

10.3. Sir dung vi

10.4. Sfi'dung In

THIi


11.1. S'i'dung 01


GHI MACRO

VOI
A I I

T

T\T.T


........

11.2. Sfi'dung VBAProject

.......... tZ6

pHuoNG pHAp TU xAy DUNG
CHUONG rnirun
lZ.l.Xdy dlmg macro m6.i............
.......12g
lL.2.Ngitddng khi md t€nh qud ddi
....130
12.3. Cl,c t5i xay ra khi xdy dung macro
................. l3l
su DUNG VA XAy DUNG sArrt TRONG VBA
13.1. Sn'dung c6c hdm sin c6 rrong


Exce1..........

14.1.:
14.1.1

14.2. Phuon
14.3.

15.1. Di6u

t5.1.2.

13.1.1. Goi ci4c him trong WorksheetFunction rir
VBA........................135
13.1.2. Chbn hdm Excel v)o 6 ................

15.

.......13j

THOAT TRONG VBA

box.............
14.1.1. Cr{c lo4i th6ng rliQp rrong butrons................
14.L2. Th6ng s6 c6c nrit di6u khi€n..........

la.1. HQp thdng b6o Message

10


l

3.

15.1.4.

13.2. Sf'dgng c6c hdm trong

nop

kl

15.1.1.

.....135

V8A..........
................13j
13.2.1. Him to6n hgc.............
......13g
13.2.2. Him xi4c nhdn d[.Iipu............
.............139
13.2.3. Hdrn chuy6n ctOi giu,a cric ki6u dfi.li6u
...................140
13.2.4. Hdm v6 x0,lf chudi.
........142
13.2.5.IIdm rlinh dang dfr.li€u............
...........145
13.2.6. Him tgo s6 ng6u nhi6n..........

..............t46
13.2.7. Hdm v6 ngiy gio......
........147
13.2.8. Hdm v€ cl6 hoa........
........i51
13.2.9. Him chuong trinh.....,..
....152
13.2.10. Cric hdm khiic ..........
.....152
13.3.Xdy dsng him trong VBA.
...........155
13.3.1. phdn bi6t hdm tu lap v6i thrj tuc
......:.....................155
13.3.2. Ci{ch xdy dung him tu 1Ap..........
.........155
13.3.3. MO t6 nQi dung hdm...........
.................158
13.3.4. T4o vd sil dgng him tu.lAp rrong Add_Ins......
.........t59
13.3.5. Goi hdm tu l6p tir thri tuc.......
............162

Him Ir

15.1.5.l
15.2. Didu khi

.

ls.2.1. I

ls.2.2.1

15.2.3. E

ls.2.4. E

r5.2.s. D

Ls.2.6. P)

15.2.7. D.

1s.2.8. Di

ts.2.9.LC

15.2.10. 'v

15.2.11. D

16.1. C6c kiilu td

16.2.L'i thi hdnt
16.2.1. X6,c

..............163

...........164
......164


16.2.2. C6ct
16.2.3. G6i

16.2.4. Nhfrl
16.2.5. X6,c


r26

I.JONG TRINH
t28
130
131

[ --

Msgbox
..............165
14.1.4. XAy dung tham s6 cho MsgBox
............................166
14.2. Phuong thri'c InputBox
................166
14.3. Him InputBox
.........169
14.1.3. Cdc bi6u tuong thdng di6p trong

cAu rRUC olAu rHrdnr

, -']b vbA
...


........... I 35

-,BA .......................135
r31
.13'7
.

138
139

r42
....laJ

-.....----..-".

| /1<

".'146
r47

I52

t55
...155

159

t62


/BA

It


17.6. Nhfrn;

r7.6.
r'7.6.'

18.1.

Vi

du

18.

l..

18.l i
18.1.:

18. l.z

18.1.i

l8.2.Yi dv
18.2.1


18.2.2

t8.2.3
18.2.4

18.3. Thay d
18.3.1
18.3.2
18.4. M6t s6
18.4.

l.

18.4.2.
18.4.3.
18.4.4.
18.4.5.
18.4.6.

t8.4.7.
l8.4.8.
18.4.9.
18.4.10
18.4.11


17.6. Nhri'ng su ki6n kh6ng ktit ho.p v6.i
ciic rttii

tu.qng


OnTime......
17.6.2. Su.ki€nKeypr.ess @dmphim)
l7 .6.1. Su. ki6n

f

,

205

:L
209

2t0

2tl
z12
z12
213

2t3
213

,-.... ........-...-.214
215

21s
;-...................216
t-


_

_..................211

,,.. ...............-.217

l_...................211

2r8
2TB

zr9
220
220

22r
221
t.

_,..................222

.........224

............225

cAc vi oqr vA rAp rRiNH vBA

................201


-...................204

................224

virng..........
18.1.1. Sao ch6p virng dic biQt.............
18.1.2. Sao ch6p virng chua xiic rfinh
18.1.3. Di chuytin virng...........
18.1.4. Duy€t riLng 6 rrong virng x6c dinh
18.i.5. Thri tuc d6 xo6 cldng tr5ng..

18.1. Vf du

18.2.Vi du

hm vi€c

vC

l)m

v6,i

...........22g
.............iZ2g

.....230
.......230
................231


viQc v6.i workbook vd worksheet.................
.....................232

worksheet.dng
18.2.2. Thi tuc rim worksheer trong workbook
18.2.3. Di chuyiin nhanh t6i m6t worksheer
nio d6
18.2.4. Khori 6 chri'a cdng thuc...........
18.3. Thay a6i cai ddt trong Exce1.........
18.3.1. Thay d6i chi dat ki6u Boolean................
18.3.2. Thay cl6i cdi dat khr{c ki6u Boolean.....
18.4. M6r s6 ham vd th0 ruc hfr.u clung khdc
18.4.1. Hdm chuy6n s5 sang chfr..............
18.4.2. Hdm chuydn AOi Uang md ti6ng Viqr............
18.4.3. Hdm t6ch s6 til trong chudi .........
18.4.4. Hlm v€ tfnh todn g6c.............
18.4.5. Th0 tuc sao ch6p dn.L6u theo kitju
dac biQt
18.4.6. Hdm nQi suy tuy6n tinh............
18.4.7. Hdm trich r6n, h9 vd t6n ct€m ...........
18.4.8. Sfi.dung Validation d0ng...........
18.4.9. Hirn xdc tlinh ID cira CpU.....
18.4.10. H)rm xiic dinh serial cua 6 dia c[.ng..........
18.2.1. Thir tuc xo6

18.4.11.

.....227

Him xric dinh thu6 thu


...............232
.................233
............234
............235
..................236
...............237

..................23j
............23g
.......23g
...........23g
........241
............241
...........243
...........246
....24g
..........251
............253
...........253

nhgp c6 nhdn 2013 ...........................254

_.....................223
IJ


rOt uu vA vn rAruc r6c rRoNG vBA
19.1. C6ch thrlc t6i u'u md


2sl

19.2.Tdngtt5c d0 tinh todn trong VBA.

261

su DUNG CAC OraU rTRONG EXCEL

conrrols..
.......263
20.1.1. Form Conrro1s..............
......................263
20.1.2. ActiveX Conrr-ols
.............265
20.2. St dyng form controls tr-On bdng tinh............
.....................266
20.2.1. Cric cti6u khi€n trong Form Controls..............
.........266
20.1. Gi6i thi€u chung vd

20.2.2. Crich xdy du'ng v) m6 t6 cdc Form Controls ............. ................26g
20.2.3. C6c thudc tinh chung cia rli6u khitin .........
............269
20.2.4. Thu6c tinh

Control

..........2i,0


conrror
20.3. Sir dung ActiveX Control tr6n bAng tinh............
20.3.1. Cdc di€u khi6n trong ActiveX Conrrols
20.2.5. Lion kt5t vh di6u khi6n bdng tinh

20.3.2. Thu6c tinh

...........
Ti'i li6u tham khio
20.4. K€t lu4n

Microsoft l

ti'ciic

....2i6
................2jg

.

.................2jg

Properties.....................:...........

...........21g

........2g4
...........286

Tuy nhi6n,


r

n6u chi don thudn
thd gidi quy6t du.o,

thfi cdng. Ngo)i ra
hodc c6 su k6t n6i
h4n cht5 tld, ng6n r

14" VBA) du'o'c tich
d€ cric bdi toiin tr6n

VBA ld ne6r
Microsoft. ptrAn mt

chuy6n vd linh vu.c
chfng ta cd th6 srj.
nam )992), Excel 5
XLM vi ld m6t phir
97 (r'a doi namlggt
Visual Basic v6i cri,a

r

tru6c kh6ng m6.du,o-r

Office 2013 dd ra di
hon, nhu'ng c6u trdc


Office 2003. CDng v<
phiit rri6n vi phi6r

va

t4


G VBA
.....25'7

....26r

(c ONTRO LS)
Chuong

GIOI THIEU VE VBA
268
r-_............... ..................269

f--"""' """'

" " " "- " " " "'2',7 0

onrrol......... ...............27 6
.278
278

Microsofr Excel (Fxcel) ld phan mam n6i tiiSng chuyOn vc
bang ,inh vh

N4icrosoft.
excel
duo-c
sri.
dung
r6ng
r6i vh ld
3i: lngp-9:1l
,{,4,' -3".,
,n: ,l1u^" truo.,c d6i
v6i nhi6u nganr, nir,e..-e.;"i girip chring ra
:F^:l.g6"9
uuuu raL
16r r"":x
nhi€u c6ng vlgc
vi6c lren
li6n quan d€n
lEr
d6n tfnh
tinh toi4'n,
toi{n, xil
xi'rv
ll; dfi.
dfi.li6u
F yu-Jsr
li6u vd vE
TJeTyo-c
d6.
chring ta c6 thi5 ":frg
th6y nhu c6u tim.hi6u Et;;i q""'rrlr;"t tir ciic di6n

F
& tin hoc chuyOn v€ Excel 6.t ong nu6c va quoc re.
Tuy nhi6n, cl6i
vi€c tinh todn, xt li; phf.c tap
chi don thuAn sri'
!,.
gidi quy6t duoc
J"i1lTLT*orffi'u:,.,J:?:
cfrfns^1a co.th6 gap nhfi.ng bdi tortn mang trnniap
di lap lqi.
:11t:^fl?:i 11,
b€n ngo.di
D€
khac
phpc
nhrng
mat
"visual
:"jj.:1":iff'_:'J9:-s
!x1el..
Basic for appri.ution,*ff
I cue d9, ng6n ngfr' r.p-rrinh ri'n! aung
du'ec tich ho.p sin trong Excel tc gr,ip chfng o .o ifa giei
q"r8r'"iei
911
cic bdi todn tr6n.

tr

.j:::.


ili:

tri6n trong m6i truong Office b6i tap rtodn
T{t,"^"t6i ng: hp.t$ n_fratAccess,
powerp_oint,... vd k6 cd phAn
m6m
'ot ,fn:n -eT
Fl.:I,-Word,
vE k! thu4r

Ji*."r".
:"d
u. co rne su dung

Autocad aa" 0"e,.

fr6i;;,vB;.'io:l#'o"r'jar,

macro trong Excer 3 (ra doi ndm rgg0), Excel. 4T (ra uvr
\rq doi
1992),Excel 5 (ra rloi nam 1994). Khi d6 macro euo.c ur6i
uang ngon ngo,
vi ld mQt phan trong bdng tinh Excer, kha ndng 0'ng dr,rng con rrarictr?.
ddi ndm 1997) da denh
ru phrit tritin cfa ng6n ngi tap trinh ring dqng
961
'a Basic v6i cri'a s6 Microsft
ual
visual Basic ho)n tohn d6c l6p. Excel phi6n b6n

k!9lg m6'duoc phi6n bdn niv. Tii5p theo ld office zooz ga,
b6
a111
c6 giao di6n vd nhi6u tinh nang"arioi, uji,e ,r"r,lJ"
foi,ng6n
*fngngfr'cFng
ilu trfc
nhu' giao diQn cira
ua; ,u&g ru nhu.
,,?!?-a,ol,g,]u1 sp phr4t tii.1g_oni.", ng6n ngfr. VBA ee"
au .oc iare .ap
phit tri€n vd phi6n ban m6i nh6t h vea 2.0 (6ff.Jioio
ot

E;.;

l:i:

{gc

;ar;tie

vBi

"a

*;;6:d:

t5



d6n nay, vBA da cd nhfr'ng bu6c ph6t tn6n vuor b6c v6i
m6r s6 khd nang kh6ng
thua k6m so v6i ngu'di anh em Visual Basic 6.0 (VB).

!

Ering chri lh offrce 2010 h phi6n ban cu6i cirng hd tro. vBA, tfc
h
Microsoft kh6ng ndng c6p vi phrit trir5n vBA n[a. Nhung pticn uan vBA
7.0 de l},
qur{

dt

cr{c tinh ndng cho nhfrng ai dam m€ kh6m ph6 ng6n^ngfr. lap

trinh ndy.

Mi
hiQn thec

nao d6 t
AutoCad.
ng6n ngfi
tdng t6c

d

Fur


dung tron

tuorng tu r
tgo hay hi

LE
dqng duo. r
hay ph6i 6

bi6t til Ex
v6'i c6c hi
D

I

ffiaorooo(

dgng hon.

uEooooo'.

tu'ddng dr
uu tliiim tl

320m

I

ueoomo


dich thdnh
I

Excel...Ng
, v6i virus n

l€0

ffinh l-l: Cira sd Microsoft Visual Basic trong Excel20l0

D.3

t

tuong tl6i r
phuong thi

VBA c6

rh

phAn mdm

kinh t6,

tii

m6n cria mi
Visual Basis for applicatiorrs:


tlt. E'lit !rew !nseft Fgrnrat

i+S

chuofu-TxGill

eebug

!un loots

[indow

{r1,tJn;

'

llelp

Ln1,Coll

- I/BAProjert

H
L:i

l=

VBAProiect (thuonq


tl

t'licfosoft Excel Obje

€ sheEil (5hEer1)
! i €sheetz(sheer2)
:
; Elll sheer3 (shEer3)
. 4ii) sheet4 (sheetl)
,' i #1 sl""ts ist'eersi
ff rhisr,vcrl,.bool,
[1. $ Hodules
j dl r,roduter
4 t"t,rdulez

C6m

Ban

r

fng dgng c
hoin thdnh

About [licros'oft Visual Easic ibr

s

ffi':,::,T:::::fl1:TH::,",.,"",


lvdrninqi Thi5 conFller proqrEm is protected bt,
copyilght law and inlerndtiqnEl lreaties.
Unouthori:ed reproduction or dislribution c,F this
progrdmr o/ any portron of tt, may result in severe
civil dnd rrimindl penEltiEs, 6nd

D/ill

be Drosecuted

to lhe mdxinun extent pDssible under ld*.

H)nh l-2: Gi6i thi€u v€ phi€n bin VBA
16

li

Nguy6n Dul

-.jt ii--_i

$.

bi6t

/.0 trong

Excel 20t0

c


Trong
Excel20031
Excel 2010 r
ngdn ngfr V
Unicode. Do
tuo,ng rltii ho
N6i dung cu(
trong m6i tru,


| -.ha nang khdng

ro VBA, ttc li
an VBA 7.0 da lh
p

tnnh ndy.

:l

l0
A,

r-rg ta glal quyet
r;. roc d0 tinh todtt

ti6n. VBA c6
imrrah)imtP'laP


|:;c
b)l
.l

:

-:__-Trong lAn t6i ban thi'tu niy, ngodi nhflng ki6n thf'c lfp trinh vBA trong
Excel 2003, chring tdi da cdp nhdt nhi€u n6i dung li6n quun dtitr Excelz}}i,
Excel 2010 nhu khai thi{c vd sri'dung Ribbon. cho d6n nay, u6n oe viet noa
ngon ngfi' vBA hay vB6.0 thucrng kh6 khdn do chfng kh6ng cluo. c h5 tro.
Unicode. Do d6, cu6n sdch ndy hu6ng d6n n6i dung vi& hoa vge m6t c6ch
tuong d6i hodLn chinh, gi6p ich cho nh0'ng ai xiy o[ng phAn m6m tr6n'ExcelN6i dung cuiii hu6'ng d6n chi ti6t vi€c xay agng ptrArimcm m6t ci{ch bdi bdn
rong mdi truong Excel.
c<:

l0l0
17


Chuong

GHI VA THUC HIEN MACRO
. Si' dgng chf'c neng tU ghi macro (Recorder Macro) ld ph.uong ph6p hay
ti6 tirng bu6'c hgc ng6n ngfr' VBA, cldc biet ld v6'i nhfr'ng ai bil dAu tim hiilu
VBA. V6i chilc ndng niy,. Excel sE ghi lgi todn bQ cr{c c6ng viQc ch(ng.ta dd
thgc hiQn tr6n b6ng tfnh (bang clc ky t-u dugc go til bdn phim) mQt c6ch tuan tU.
Vn khi d6, chring ta c6 thiS nim b6t duo-c qu6 trinh thu'c hipn c6ng vi6c nho' vi6c
chay (thi hinh) macro b6i c6c cdu lQnh ild tluo-c ghi lgi trong n6. Ngoii ra, cdc
dbng lpnh duo. c ghi tg ttQng d6 sE girip chfng ta tim hi€u ngdn ngfr' l4p trinh nhy
vi c6ch thri'c thgc hiQn.

Trolg Excel 2003, menu l\tlacro du'o-c mdc dinh san c6 o'trong Tools 6'
d4ng truy€n thdng vd c6 thC tim th6y mQt cdch d6 ddng. Cdn trong Excel2007
vi 2010, menu duo.c thay bdng Ripbon vd mdc tlinh kh6ng hiQn ra, chring duo.c
qudn l! trong menu Developer. De hi€n thi menu Developer, chring ta thr,rc hiQn
nhu sau:
r'',

- Trong Excel 2007:

BAm mit Office

- Trong Excel 2010:

B6m File vh trong danh sdch thd xu6ng. chgn
i6 .hon

Button

. trong cila s6 Excel
Options chgn Popular, sau tl6 chgn Show Developer tab in the Ribbon
(Itrnh 2-1). Khi d6 Ribbon Developer s€ hi€n thi, Macro th€ hi6n du6i dang
Ribbon (Hinh 2-3).
Options. Trong cri'a s6 Excel Options chgn Cristomize Ribbon, .uu
Developer cia danh si4ch Main Tabs (Ffinh 2-2).

18


Chuong


iN MAERO
rro)

ld phuo-ng PhdP

haY

hirne ai bat dAu tim hi€u
ac c6ng vi€c chfngta dd
n phim) mQt c6ch tuan t1r'
c hign c6ng viQc nho viQc
f trong n6. Ngoii ta, cdc
r€u ng6n ng[' lfP trinh ndY
rh

sin c6 o'trong Tools d

ng. Cdn trong Excel 2007
rh6ng hiQn ra, chfng du-o. c
reloper, chring ta thgc hiQn
'41., trong cila s6 Excel

loper tab

in the Ribbon

Macro th6 hiCn du6i d4ng

mh s6ch thA xudng, chqn
nize Ribbon, sau d6 chqn



E€ ghi tai nhule^.tre$ do,"q x6y ra khi thao t6c trong
Excer, chon n(t
(Ifinh 2-3). c&'a s6 Re"o.o Macro hi6n ra
rrnni z-+l v6i c6c lu,a

Recorcl Macro
chon sau:

D6

ghi tF

dQn

2.I.T4o
- Shortcut kev: phim t6t d6 thuc hiQn macro d6, luu
v6i phim tit dd, c6 trong Excel.

f

Chri;

ld khdng rrdt trDng

- Store macro in: Noi ati luu trfi'macro, cd nhi,3u lua chon
kh6c nhau.
+ This Workbook: Luu trong Workbook hi€n hinh (mdc
dinh).


NQi dung

r
1.T;

2. Tr
2-4).

+ New Workbook: Luu Workbook m6i.

+

r

3.

Personal Macro workbook:

Luu trong personal.xlsm (hoac
Personal.xls nrlu dirng Excel 2003). Nhfi.ng macro
duoc luu trong personal.xlsm
tl6u sri dr,rng duo.'c khi m6'Excel.

ch

4. Trc

5. Trc


6. Khi

hiQn trong sr
Stop Recordl

7. Tro

kh6ng t6c dy:

E

,

8. Tror

ti6p theo

li

t6

9. Cho

10. Bdr:

tl, "r,-.1 [f,s."*rr'_l

il. 86r

Hinh 2-4: Cira sd Record Macro


b€n trrii phia d

c6c macro trong c6c workbook khi4c nhau c6 th6 sri.dung
u6t cri,hic nio
khi cric workbook dang m6'(k6 ca st'dung chfng tir.workbook
kh6c). Trong
(select) chi tluo. c ghi lai khi c5 c6c hdnh
dung hay thay tl6i ph6ng chfi.. Cfrng c6
nhfr'ng thao tiic thuc hi6n niiu AOi tu.-ong

r,^
lVlO
Mo
hay

macro crd truo-c luu

l4i v6i t6n x6c trinh trong Module,

fq^
ra rrong
rr^6^ qur{
tao ra
^.,;.-)-rtrinh. ghi vi ld mOt phdn
cfia Workbook.
t ci{ch tlon gidn ld no-i luu trfi'macro, n6 c6 thiS

chri'a moi


Di€u kiQn d6 c6 th€ thgc hiQn ghi macro:
- TrOn workbook dang duo-c kich hoat (ActiveWorkbook).
- TrOn wiii-kbook m6i.
20

llit u

Mil"r'**
r".

P

a

f)


'ang Excel, chgn nft
l-tnh 2-4) v6i c6c lua
t-rin ih cria tOn macro
r. sLi hoAc k! tg gach
. -r. S. #, &,... khOng
5 trong macro.

I

lir khdng d4t trilng

-'


oc rtcu hon v€ phuong phr4p thp'c

hiQn, chring tahd,y thuc hdnh c6ng vi6c

tU dQng macro nhu'6'du'6i cldy.

bing chrlc nang Recorder Macro

2.1. Tqo macro

Chdng ta hdy ti6n hinh tao macro dAu ti6n bing chf'c ning tq' ghi macro.
lung macro ndy trinh bly ton vi dia chi cta ban, c6ch thu.c hi6n nhu.sau:

]'-.

l. Tai Ribbon Developer chgn Record Macro

::1,.n khdc nhau.

a1c dtnh).

(Ffinh 2-3).

2. Trong Macro name: G6 Dia-chi-tuyet_doi ae aat t6n macro d6 (Filnh

t-

3. Chuy6n sang Shorrcut key: O6 tr6ng (thgc hi6n vi€c ndy sau).
4. Trong Store macro in: mdc dinh ld This Workbook.


Personal.xlsm (hobc
I irong Personal.xlsm

5. Trong Description: 96 n6i dung "Nhap rlia chi rrong 6

6. Khi d6

nft

83"

vd b6m

oK.

Record Macro trd thdnh Stop Recording (dilng ghi) s6 xuAt

r'-- :ong su6t qu6 trinh.ghi macro khi da hodn thdnh c6n! viQc,"#m vdo nLit
S:- Recording. Nt5u mu6n di3 dirng ghi macro.
7. Trong qud trinh ghi macro, nft Use Relative References mec ctinh

I

r:
:

!

-:_s t6c dung (Ffinh 2-5).


8. Trong Sheetl. b5m vdo 83 vd gd r6n cria ban.
-jreo li t6n truong cirng v6i clia chi.

0 o ou'ol go t6n ngdnh,

9. Cho todn b6 6 ch['a ciic ch0'thinh rl6m vd nghi0ng.
10. B6m v)Lo 6 87.

11. B6m vdo nrit Stop Recording hodc'rit hinh vu6ng mdu xanh 6'g6c
phia du6i ct6 hoan thinh c6ng vi6c ghi macro.

-::ii

i- dq'J

;u

iung b6t cu' lfc nho

u.ribook khdc). Trong
p::r lai khi c5 c6c hhnh
: phong ch['. Cfrng c6

uc ildn neu ddi tuo-ng

Gl

*..

.Jlr

ld.d

A-_l_

c

,Jinh trong Module,
t p:ldn cira Workbook.
'.-. n6 c6 the chri'a mOt

r.yout

ro.mur!' D.r!

El*:-E

Phen

Db

Bookl-MicrosoftExce
P!!r

nlHuttls

d6t

frublv

i


r!

,he-i?" q1e9!l- "r

j.w

v.w

ocv.ror.,

F----

G

--

I

K36

cOng trlnh
DOi hAc Md Ola

) -"---:l
. *'.ii
,"i

i


:

I

thtjt

e_eipq yspt, r./ L isn/

qbe..-e-t1

-E--

R.

t# tvi

!(

Hinh 2-5: Thuc hi€n Record Macro trong Excel
iberck).

2l


Ti€p rheo, chfing ta se tao mQt macro gi6ng nhu tr€n cfing bing c6ch tg
ghi macro. Chi khdc li macro rru6'c srj. dung tlia chj tham chitSu tuyQt-ddi, cbn
macro sau sE s0' dgng quan h6 tham chi6u 6 tuong d6i
lquan h6 v6i vi tri d rluo. c
kich hoat ban dAu).


l

Chqn Sheetl, b6m vho 6

Bl l.

2. Trong Ribbon Developer, chon Record Macro (Flinh 2_3).

3. Trong Macro namer gd Dia-chi_tuong_doi oe oat t6n macro

ftIinh 2-4).

Shift ve 96 chfr'A, nhu v{y phim t6t sc
ro.116 trirng v6i phfm t6t mpc tlinh trong
-

li Ctrl
Excel,
5. Trong Store macro in:

d6

n6u duo-c b6m.

M{c tlinh li This Workbook.

6. Trong Description: G6 n6i dung "Nhdp dia chi d dAu ti6n" vd b6m

oK.


7. Trong Developer, b6m vio nrit use Relative References cho n6i l6n,
tri'c ld chri'c ndng tham chi6u 6 tu'ong e6i co tr4c dpng. Excel so tii5p tgc gil
macro v6i quan h€ tuong tl6i cho tt6n k thorit kh6i Excel, hoac chring ta b6m
lai vio nrit Use Relative References.
8. Go t€n b4n, l6p, t6n rruong
B14. NQi dung thti hiQn nhusau:

vi

dia chi trong c6c 6 Bl

I,BlZ, Bl3

vh

Phah Tq .trqdng

Dia chat c6ng rrinh K35
Trrldng D4i hgc M6 Dia chAt
xa D6ng Nqac/ Ttr Li€m, HA NQI
9. Cho todn b6 ciic chO' dAm.
10. Chen 6 B15.

I 1. B6m vdo nrit Stop Recording d6 kt5t thric.

chring ta c6 th6 sil dung chii'c6 ddu titing viQt, tuy nhi6n, khi sang cri,a s6
MVB thi chfi' d6 sE rat kh6 rloc. D6 doc duo. c chfi'ti6ng vi€t, chring ta pirai thay
cl6i font chfr'm{c dinh courier New (western) sang .vnxxx (theo TCVN).

Ghi chri: Khi su dlrng.quan ha tham chi€u 6 tu.ong d6i, ddu tion chon 6

giic (Activecell) truo'c khj ;(im nrit use Relative Refereies, cdc 6 khdc sd thd
hi€n quan hQ tham chi€u tuong aifi val 6 giic d6. cirirg ta c6 th€ lrya chpn hdn
ha'p dia chi tuy€t aai v9 tu'ong d6i trong qud trinh ghi macro. Tuy nhian,
kh6ng
nan sn d1'tng phuong phcip ndy vi qud trinh tham chi€u sd tQn x6n, kh6 theo
d6i.
- Dc sri'dgng tham chi6u tuo-ng d5i trong su6t qur{ trinh ghi macro, n6t
_

Use Relative References lu6n n6i @d t6c dung).

- D6 sil dung tham chii5u tuy6t d6i trong sudt quii trinh ghi macro,
Relative References lu6n t6i (kh6ng tric dqng).
22

nft

Use

2.3.Thul
Thr
Macro (mr
hdy sri'dgn

1.Tr

2. Bi

3. H2



fo. :ur-g bdng cdch tg

r ::-i- iuy Qt d6i, cdn
r- --- . --. I i tri 6 ilu'o. c

2.2.ThVc hiQn macro khi su dUng bdng didu khidn macro
Thuc hi6n mQt macro ld qud trinh thi hi'h c6c l€nh chri.a rrong
macro d6
(cdn gqi li thg'c thi hopc chay macro). Chring ta cho
thy'c hipn macro tr€n tir.
Sheet2 nhu sau:

L Chon

r.- l-3 ,.
13 iat tin

macro

c16

!,_

L :.:.-- \a-\ phtm tal Se
r-:- ::: nic dinh trong

Sheet2

vi b6m vio


0 ndo d6 ngodi 6 83.

2.Trong Ribbon Developer., chon Macros (Ilinh 2_3).
3. B6m vdo macro c6 t6n Dia-chi-tuyet-cloi trong danh siich macr.o (Hinh
2-6). NOi dung ghi chf cta macro eO sC tfre'irien d.Desc-ription.

4.Bdmnrit Run.

)-t

:'- :.:;'t

.,t

\ a Dam

Ul\.

r--::=.,Jes cho n6i lOn,
': tuc gnl
t'.,:. <€ trep
r:-. ---:ic chring ta bAm

14 <{ ,

r'

rja0{i


r"" ii

191! h-:.1

Ni,i'o1r11ttY.a,

-

I $:

119_1ll

i c , t..., L.ljr,r' ,ir1,. r.
.,,,.1 r!1,.::r,,,,.,-r:r,:|,,r
i .

a O;

P T.r

' i}:j' ' 'i'
:." :..,)\. r,'".' , ....
,
..

:,
)

.


s : B I.BlZ, Bl3

iril

Mo(rt

"."+_*__i

vd

t

I

.

---*-.1-

|

i

j

r[1

Hinh 2-6: Thuc hi€n macro til c&a sd Macro tai Sheet2

2.3.ThVc hiQn macro khi su dUng phim t6t (shortcut key)


M

-u;:;"1h-H.ill;l?,:""5#l,i;

na

l. Tai Sheet2,bdm vho I

6 b6t

k! (vi

du 6

Hl4).

2. Bdmphim ctrl+shift+A, khi d6 t6n vd dja chi

macro,

r-:;

nft

sE xuAt hi6n clu6i 6 d6.
3. Hay thi hdnh macro rld bing phim t6t tui cric vi tri khdc rrons Sheet2.

s;ri maclo, nrit Use

z-)



2.4.Tqm dung khi thgc hiQn vd tho6t
khdi macro

Thri tgc

vi thorit kb
cia 6 Al clu-o
tgc lhm vi6c ti
10

'Thfr tuc

r

Sub BadSul

DimiI
l.

Da
I6ot A/dih, lindtu

' :!i.rh!
r-\f.i C.\r
' Nhlip ,fLs .::ii ::on,
Fange (i 83" ) se
Acrrvece Il. Eomu


Rang€ (, B4i J , SeL€c

Range

('85')

Rangr
Msgbr

Loop
End Sub
c6tu

| Ed lllE--.tl

+

I

selecr

iil"'Ji.'ill;i;iTllaRrcl '

Actlv€Celt

FomulaRtct

Fori-1TolO00
Rang€ ('BZ')


,

'rruonq Dar hoc M6 Dra chlic,
_,,xg D6n9 Ngec, Td
!r6m, Hl N6rr

Un

Thri tuc I
do d6 giri trii r
mdn, vdng l{p
Phirn Esc hic d<
mfy", trd' v6 trp

seI€ct

2.5.,Luur0p ti
Hinh 2-7: Tam dUng khi thuc hi€n thrl
tuc

cri'a s6 Microsoft visual Basic hiQn
ra th6ng b6o
(code excecution h;;
inte'uited)

;;;"

lilXiXlilflt

ring


Sau khi cl

thrr tuc tlang thu.c
ruons hop rya

c;-;"

- Continue: Thrj tuc d6p tgc chay binh
thuo,ns.
- End: Thri tgc ding tai cldy.
- Debug: GO.r6i trong

- Dudi xls;

thi tuc (xem chi ti6t trong chuong l6).

Tiry trudng ho.p c1r thd md chring ta chgn
m6t trong ciic truong ho.p tr€n.
Khi sri'duns ving.l?p,
l6u kh6ng can thrin thri tuc sE kh6ng bao gio k6t
thric vi diaiu ki€n tnoat lnoi vdng
eeYv th6a'mdn.
rr ------D duqc
e fupkiong
r'vq
v
viau
nhu.thri tuc
du'6i

tfdy:

'Thri tgc

'r4rr'

vi6c t6t, kh6ng bi I6i
Dim i As fnteqer
l_)m

Sub GoodSub

()

Do

Range("AI',).Va_lue = i

Msgbox Range (,, AL, ).Val-ue
i-l

LoopUntili>10

End Sub
24

cdng vipc luu b)
th€ chria bdng ri
quin lf tdp tin kl
thuong chi chri'a


- Du6i xlsr

- Du6i xltr

- Dudi xlar
- Dudi xls:


-.r\ qud trinh thy'c
:: :-:i thg'c hiQn c6ng
t- -:-: kh6ng th6 thuc
l- :--; nhnh sE diSn la
r-.

i.i:

dng l4p For ...
. :.- tt ong macro t4i

:

',

'Thu tuc ndy bi l6i,

Sub BadSub

(


kh6ng bao gio thodr khoi vdng lip

)

Dim i As Inteqer
Oo

Range ("AI", . Value = i
MsgboxRange (,,A1. ) . Value

LoopUntili>10
End Sub

2.5. Luu tqp tin c6 chfa macro

l.

::ng

,--r tuc dang thq'c
truong ho.p lu'a

.:-'

Sau khi dd tao duoc macro, hdy luu t6p tin chfi'a ch6ng. v6.i Excel 2003,

viQc luu binh thuo'ng voi du6i xls thuong gap. v6i dudj xls, r6p rin dd c6
chri'a
bing tfnh ri6ng hodc ca macro. Nhu'ng til Excel 20oj tr6 di, m6 hinh
--.i

: -an lf tap tin kh6c di. chring ta sE rh6y su phan chia rach rdi gifr.a rdp tin thdng
--roxg chi chri'a b6ng tinh v6i tru.ong ho.p chfla macro nhu.sau:

- Dudi xlsx: Chi cho phdp chir"a bAng tinh, kh6ng cho ph6p cht.a macro.

- Du6i xlsm: Cho ph6p ch['a macro trong bAng tinh.

r--.

.:

il

- Du6i xltm: T4p tin tam thoi c6 chil,a macro.

r.

:i.rng

ho.p tren.

= '--,lng bao gio k6t
i : lu nhu' thrl tuc

r-

- Dudi xlam: Tdp tin 6'dang Add-In c6 chila macro.
- Dudi xls: Tdp tin 6'dang cfr (Excel

9j - 2003).


25


{8 s"*

Ganarrl

thottng

[;*r

i

.-:':;:

o(
]

9R lll., InthLlomrt

:E!..1 wdtbootf

Lingu19.

i qui* A(..r, Ioolbir
i naorn'

isingl. rir.v/.b P.q. l'mhl


t

hhrdl

('hl4 tHn0
l.hpl.t. fru,
ijj Str.Dr.autoR.cov.rtoib..t k(o-EMbt.dt69[r. f,{rm)
:Ec.l 97-m]T.npl.l. f {0
m.cditq
4ddr ld d4Td (T!b d.tinit.dl F M)
j
sw..h.(k.d-out itcs toii untoot ra r u)
Ptgt

A@ko€el(ebhiw.b

: Erccl

{1 nc rcrrr
$ ftGQflk.
loGl

orfdtl

S.ryrr dr.tB


choorc

dil


cototr wiil

O

(,.pn)

iI.nO{cntoa{ f u)
4ru {us.ootr rrtt
iCsV {u.(norh) f ,!t,
b. jcsv(us_rcs) f o9
iDIF (D.u

Inl.ftEnq. rorn.ll

C dio

Hinh 2-8: ThiCt lQp kidu du6i luu khi sir dung Excel2OO7 (2010)

Nhu vfy, khi xdy dg'ng macro trong Excel 2OO7 (2010) chring ta cAn phdi
sri'dr,rng tlu6i xlsm. Excel2007 (2010) mac tlinh luu c6 du6i xlsx (llinh 2-8), do
d6 cAn thitit Qp luu m{c dinh v6i du6i xlsm nhu sau:

- Excel 2007:

B6;m nrit Office Button, trong ct'a s6 Excel Options chgn

Save.

- Excel 2010: B6m File vi trong


danh srich thA xu6ng, chgn Options.

Trong cila s6 Excel Options chgn Save.
. Sau cl6 chen Excel Macro-Enable Workbooks (*.xlsm) trong Save file in
this format (FDnh 2-8). K6 til ttdy, c:ic tfp tin Excel duo-c luu v6i tluOi m4c ttfnh
li xlsm, k€ ci bdng tfnh khdng ch['a macro (hay dU r{n VBA).

Trong trudng ho.p chring ta luu tAp tin c6 chf'a macro v6i dudi xlsx thi
sao? Khi tl6 sE c6 ngay cinh b6o (Hinh 2-9)! Th6ng b6o d5 n6i ring ki6u dudi
niy khdng cho ph6p chri'a macro (hay dU dn VBA). N€u vQi ving bdm Yes thi
sE tri gid ngay, khi tl6 toin bQ macro (vd c6c dU 6n VBA kh6c) s€ bi x6a.s4ch!
Trong trudng ho.p niy phii chgn No, sau tl6 chgn cludi xlsm phil ho.p tl6 clim
bdo cdc macro md chring ta m6'i x6y dung du'o. c luu git'.

26

Ntir
clu6i xlsx


The fdovdflg

.

VB

Gablrs cffiot

be


sved h maso-fre wql6ooksr

proied

thF ftitfB, d*

To

sve

To

cstirDe savinqda

a

fle with

t{o, md thm

drm

a

mamcnaHcd file vpe in he fie Type list.

mm-fie *trkM'd*YEs'

f

Tagr: Add

roor:

l2oo7 (2olo)
t0lO) chring ta cAn Phii
h6i xlsx (Ftrnh 2-8), do
so Excel Options chgn

d

taE

- f;"'d-:l i_!;;i-]

,Hinh 2-9: cinh b6o khi tip tin chrla macro dudc luu v6i du6i xlsx

Ntiu chi ldm viQc v6'i bang tinh th6ng thudng, ch6ng ta n€n luu tip tin c6
du6i xlsx nhim lo4i b6 crlc macro ho4t d6.ng, trong d6 c6 th6 chri'a virus.

xudng, chgn Options.
trong Save file in
r luu v6i du6i mac tlinh
rBA).

[bm;

rnacro v6i du6i xlsx thi
b aO .toi ring ki6u dudi


lr v6i vhng bAm Yes thi
)A khdc) sE bi x6a sach!
f, xlsm phi ho.P d6 tlim

21


×