1. Trang chủ
  2. » Công Nghệ Thông Tin

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

287 367 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 287
Dung lượng 30,32 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 2

fr$0r?0 tffru t0fi$H 0EEs

}TMKru ru0ut

HUUIdvt

Trang 3

rvnHr

Ax y^

cOH voH)

t0ntlff tlHc

HUlildvt

tlil0nff

nI

ilultd 'sut

Trang 4

IecxA dgqd

IeIS irl uqnb u"g

UgIp

I€G

3uoq4 queqJ

nglqu

ulgur

ugqd 'tgqc fqo

lQl

Trang 6

5.1.1 8xce12003 " ' "" 4'7

5.1.2 Excel2007 vh 2010 '." ' " 48

5.2 Antohn khi ldm viQc v6'i tfp tin Excel ' ' ' '.' 50

5.3 Sil dyng cdc chuong trinh diQt virus 53

6.1 Uu dii5m cira chirc ndng tg ghi macro (Record Macro) ' 56

5.2 Nhuo.'c cti,5m cira chrlc ning tr,r ghi macro 51

7.1 D6i tuo.ng l4p trinh VBA " 59

7.2 Phuong thilc (Method) ' "-.- ' " .62

7.3 ThuQc tinh (Property) 65

S.1 DOi tuo.ng Application -.' ".""' 67

8.1.1 ThuOc tinh Calculation .""' 68

8.1.2 ThuQc tinh ScreenUpdating ' ""' 69

8.1.3 ThuQc tinh DisplayAlerts '.""" 69

8.2.Ddituo.ng Window .'.' "" 70

8.3 D6i tuQng Workbook .""-"""'72

8.4 DOi tuo.ng Worksheet """""""""'73

8.4.1 Ei6u khiiSn Worksheet .'.""""' 73

8.4.2.Xdc dinh c6c th6ng tin trong Worksheet " ' """'75

8.a.3 NhAp dfr'liQu vho trong Worksheet """"75

8.5 Ddi tuo.''rg Range (kh6i 6) vd Cells (6) ' "'."' """"""""""'76

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

8.5.2 DOi tuo-ng Selection ' """""""""79

8.5.3 DOi tuong Cells """"""""' 80

8.5.4 ThuQc tinh Offset: """"""" 8l

8.5.5 ThuOc tinh Resize """"""" 82

8.5.12.l

8.5.13 I8.6 Tra cfu vi

' 9.4.3 G6

9.4"4.Hu

9.5 Khai b6o v

9.5.1 Md9.s.2.MA

10.4 Sfi'dung In

THIi

11.1 S'i'dung 01

Trang 7

GHI MACRO

VOI

A I I T T\T.T

Trang 8

11.2 Sfi'dung VBAProject tZ6

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 135

13.1.1 Goi ci4c him trong WorksheetFunction rir VBA 135

13.1.2 Chbn hdm Excel v)o 6 13j 13.2 Sf'dgng c6c hdm trong 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

nop THOAT TRONG VBA la.1 HQp thdng b6o Message box 163

14.1.1 Cr{c lo4i th6ng rliQp rrong butrons 164

14.L2 Th6ng s6 c6c nrit di6u khi€n 164

14.1.:

14.1.1

14.2 Phuon

14.3 Him Ir

15.1 Di6u kl 15.1.1.

t5.1.2

15 l 3.

15.1.4.

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 16.2.2 C6ct 16.2.3 G6i

16.2.4 Nhfrl 16.2.5 X6,c

Trang 9

r26 14.1.3 Cdc bi6u tuong thdng di6p trong Msgbox 165

14.1.4 XAy dung tham s6 cho MsgBox 166

14.2 Phuong thri'c InputBox 166

14.3 Him InputBox 169

cAu rRUC olAu rHrdnr I.JONG TRINH t28 130 131 [ , -']b vbA I 35 -,BA 135

r31 .13'7 138 139 r42 | /1< laJ - -" ".'146 r47 I52 t55 155

159

t62

/BA

It

Trang 10

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

Trang 11

f , 201

- 204

:L 205 17.6 Nhri'ng su ki6n kh6ng ktit ho.p v6.i ciic rttii tu.qng 224

l7 6.1 Su ki6n OnTime 224

17.6.2 Su.ki€nKeypr.ess @dmphim) 225

cAc vi oqr vA rAp rRiNH vBA 18.1 Vf du hm vi€c v6,i virng 227

18.1.1 Sao ch6p virng dic biQt 22g 18.1.2 Sao ch6p virng chua xiic rfinh iZ2g 18.1.3 Di chuytin virng 230

18.1.4 Duy€t riLng 6 rrong virng x6c dinh 230

18.i.5 Thri tuc d6 xo6 cldng tr5ng 231

18.2.Vi du vC l)m viQc v6.i workbook vd worksheet 232

18.2.1 Thir tuc xo6 worksheet.dng 232

18.2.2 Thi tuc rim worksheer trong workbook 233

18.2.3 Di chuyiin nhanh t6i m6t worksheer nio d6 234

18.2.4 Khori 6 chri'a cdng thuc 235

18.3 Thay a6i cai ddt trong Exce1 236

18.3.1 Thay d6i chi dat ki6u Boolean 237

18.3.2 Thay cl6i cdi dat khr{c ki6u Boolean 23j 18.4 M6r s6 ham vd th0 ruc hfr.u clung khdc 23g 18.4.1 Hdm chuy6n s5 sang chfr 23g 18.4.2 Hdm chuydn AOi Uang md ti6ng Viqr 23g 18.4.3 Hdm t6ch s6 til trong chudi 241

18.4.4 Hlm v€ tfnh todn g6c 241

18.4.5 Th0 tuc sao ch6p dn.L6u theo kitju dac biQt 243

18.4.6 Hdm nQi suy tuy6n tinh 246

18.4.7 Hdm trich r6n, h9 vd t6n ct€m 24g 18.4.8 Sfi.dung Validation d0ng 251

18.4.9 Hirn xdc tlinh ID cira CpU 253

18.4.10 H)rm xiic dinh serial cua 6 dia c[.ng 253

18.4.11 Him xric dinh thu6 thu nhgp c6 nhdn 2013 254

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

_ 223

Trang 12

rOt uu vA vn rAruc r6c rRoNG vBA

19.1 C6ch thrlc t6i u'u md

19.2.Tdngtt5c d0 tinh todn trong VBA

su DUNG CAC OraU r<ldru ruArue cAo (coNrRoLS)

TRONG EXCEL

20.1 Gi6i thi€u chung vd 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.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 20.2.5 Lion kt5t vh di6u khi6n bdng tinh ti'ciic conrror 2i6

20.3 Sir dung ActiveX Control tr6n bAng tinh 2jg 20.3.1 Cdc di€u khi6n trong ActiveX Conrrols 2jg 20.3.2 Thu6c tinh Properties : 21g 20.4 K€t lu4n 2g4 Ti'i li6u tham khio 286

2sl

261

Microsoft l

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 r

nam )992), Excel 5

XLM vi ld m6t phir

97 (r'a doi namlggt

Visual Basic v6i cri,a

tru6c kh6ng m6.du,o-r

Office 2013 dd ra di hon, nhu'ng c6u trdc Office 2003 CDng v<

va phiit rri6n vi phi6r t4

Trang 13

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

F TJeTyo-c 16r nhi€u c6ng vi6c li6n quan d6n tinh toi{n, xi'rv dfi.li6u vd vE

lEr yu-Jsr uuuu raL r"":x

":frg vlgc lren quan d€n tfnh toi4'n, xil ll; dfi li6u vd vE

F & tin d6 chring ta c6 hoc chuyOn v€ thi5 Excel th6y nhu 6.t ong c6u nu6c tim.hi6u va quoc Et;;i q""'rrlr;"t re. tir ciic di6n

Tuy nhi6n, cl6i vi€c tinh todn, xt li; phf.c tap

chi don thuAn sri'

!,.

:11t:^fl?:i 11, cfrfns^1a co.th6 gap nhfi.ng bdi tortn mang trnniap di lap lqi

.j:::

I cue d9, ng6n ngfr' r.p-rrinh ri'n! aung "visual

Basic for appri.ution,*ff ili:

911 du'ec tich ho.p sin trong Excel tc gr,ip chfng o .o ifa giei q"r8r'"iei

cic bdi todn tr6n.

T{t,"^"t6i ng: hp.t$ n_frat tri6n trong m6i truong Office b6i tap rtodn

'ot ,fn:n -eT Fl.:I,-Word, Access, powerp_oint, vd k6 cd phAn m6m

u co rne su dung macro trong Excer 3 (ra doi ndm rgg0), Excel T \rq uvr4 (ra 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? E;.;

'a ddi ndm 1997) da denh 961 ru phrit tritin cfa ng6n ngi tap trinh ring dqng

ual Basic v6i cri'a s6 Microsft visual Basic ho)n tohn d6c l6p Excel phi6n b6nk!9lg m6'duoc phi6n bdn niv Tii5p theo ld office zooz

"a ga, ;ar;tie b6

l:i: a111 foi, *fng c6 giao di6n vd nhi6u tinh nang rioi, uji,e ,r"r,lJ"

,,?!?-a,ol,g,]u1 sp phr4t tii.1g_oni.", ng6n ngfr VBA ee" au .oc iare .apphit tri€n vd phi6n ban m6i nh6t h vea 2.0 (6ff.Jioio

"a ot *;;6:d:

t5

Trang 14

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.

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

Visual Basis for applicatiorrs: chuofu-TxGill

i+S tlt E'lit !rew !nseft Fgrnrat eebug !un loots {r1,tJn; [indow llelp

' Ln1,Coll

- I/BAProjert

H -.jt ii _i

L:i $ VBAProiect (thuonq

l= tl t'licfosoft Excel Obje

€ sheEil (5hEer1)

! i €sheetz(sheer2)

; : Elll sheer3 (shEer3)

4ii) sheet4 (sheetl)

About [licros'oft Visual Easic ibr

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 /.0 trong Excel 20t0

Mi

hiQn thec

nao d6 tAutoCad.ng6n ngfi

hay ph6i 6bi6t til Ex

v6'i c6c hidgng hon

tu'ddng dr

uu tliiim tl

dich thdnh

Excel Ng, v6i virus n

D.3 t

tuong tl6i r

phuong thi

VBA c6 rhphAn mdm

kinh t6, tii

m6n cria miC6m

bi6t li Ban r

fng dgng c

Nguy6n Dulhoin thdnh c

TrongExcel20031Excel 2010 r

ngdn ngfr V

Unicode Do

tuo,ng rltii ho

N6i dung cu(

trong m6i tru,

Trang 15

-: 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 N6i dung cuiii hu6'ng d6n chi ti6t vi€c xay agng ptrArimcm m6t ci{ch bdi bdn

tr6n'Excel-rong mdi truong Excel

c<: l0l0

17

Trang 16

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:

- Trong Excel 2007: BAm mit Office Button r'', trong cila s6 ExcelOptions 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)

- Trong Excel 2010: B6m File vh trong danh sdch thd xu6ng chgn

Options Trong cri'a s6 Excel Options chgn Cristomize Ribbon, .uu i6 .honDeveloper cia danh si4ch Main Tabs (Ffinh 2-2)

Trang 17

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, chqnnize Ribbon, sau d6 chqn

Trang 18

E€ ghi tai nhulệtre$ do,"q x6y ra khi thao t6c trong Excer, chon

n(tRecorcl Macro (Ifinh 2-3) c&'a s6 Re"ọo Macro hi6n ra rrnni z-+l v6i c6c lu,a

chon sau:

- Shortcut kev: phim t6t d6 thuc hiQn macro d6, luu f ld khdng rrdt trDng

v6i phim tit đ, c6 trong Excel

- Store macro in: Noi ati luu trfímacro, cd nhi,3u lua chon kh6c nhaụ

+ This Workbook: Luu trong Workbook hi€n hinh (mdc dinh)

+ New Workbook: Luu Workbook m6ị

+ Personal Macro workbook: Luu trong personal.xlsm (hoac

Personal.xls nrlu dirng Excel 2003) Nhfịng macro duoc luu trong personal.xlsm

tl6u sri dr,rng duọ'c khi m6'Excel

E

tl, "r,-.1 [f,s."*rr'_l Hinh 2-4: Cira sd Record Macro

c6c macro trong c6c workbook khi4c nhau c6 th6 srịdung u6t cri,hic nio

khi cric workbook dang m6'(k6 ca st'dung chfng tir.workbook kh6c) Trong

(select) chi tluọ c ghi lai khi c5 c6c hdnh

dung hay thay tl6i ph6ng chfị Cfrng c6

nhfr'ng thao tiic thuc hi6n niiu AOi tụ-ong

r,^ macro crd truo-c luu l4i v6i t6n x6c trinh trong Module,

lVlO fq^ ra rr^6^ ^.,;.-)-r

Mo tao ra rrong qur{ trinh ghi vi ld mOt phdn cfia Workbook.

hay t ci{ch tlon gidn ld no-i luu trfímacro, n6 c6 thiS chría moi

Di€u kiQn d6 c6 th€ thgc hiQn ghi macro:

- TrOn workbook dang duo-c kich hoat (ActiveWorkbook)

- TrOn wiii-kbook m6ị

Trang 19

'ang Excel, chgn nft

l-tnh 2-4) v6i c6c lua

t-rin ih cria tOn macro

r sLi hoAc k! tg gach

c ,Jinh trong Module,

t p:ldn cira Workbook

'.- n6 c6 the chri'a mOt

oc rtcu hon v€ phuong phr4p thp'c hiQn, chring tahd,y thuc hdnh c6ng vi6c

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

2.1 Tqo macro bing chrlc nang Recorder 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 (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

5 Trong Description: 96 n6i dung "Nhap rlia chi rrong 6 83" vd b6m oK.

6 Khi d6 nft Record Macro trd thdnh Stop Recording (dilng ghi) s6 xuAt

S:- Recording Nt5u mu6n di3 dirng ghi macro.

7 Trong qud trinh ghi macro, nft Use Relative References mec ctinh

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

8 Trong Sheetl b5m vdo 83 vd gd r6n cria ban 0 o ou'ol go t6n ngdnh,

: ! -jreo li t6n truong cirng v6i clia chi

9 Cho todn b6 6 ch['a ciic ch0'thinh rl6m vd nghi0ng

qbe -e-t1 ,he-i?" q1e9!l- "r !(

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

2lfrublv DOi hAc Md Ola thtjt

iberck).

Trang 20

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 d6

ftIinh 2-4)

Shift ve 96 chfr'A, nhu v{y phim t6t sc

-5 Trong Store macro in: 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 vi dia chi trong c6c 6 Bl I,BlZ, Bl3 vh

B14 NQi dung thti hiQn nhusau:

Phah Tq .trqdng

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, nft Use

Relative References lu6n t6i (kh6ng tric dqng)

Trang 21

(cdn gqi li thg'c thi hopc chay macro) Chring ta cho thy'c hipn macro tr€n tir.

Sheet2 nhu sau:

L Chon 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

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)

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 sE xuAt hi6n clu6i 6 d6.

3 Hay thi hdnh macro rld bing phim t6t tui cric vi tri khdc rrons Sheet2.

z-)

Trang 22

2.4.Tqm dung khi thgc hiQn vd tho6t khdi macro

Hinh 2-7: Tam dUng khi thuc hi€n thrl tuc

cri'a s6 Microsoft visual Basic hiQn ra th6ng b6o

lilXiXlilflt (code excecution h;; ;;;" inte'uited) c;-;" ruons hop rya

- Continue: Thrj tuc d6p tgc chay binh thuo,ns.

- End: Thri tgc ding tai cldy.

- Debug: GO.r6i trong 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 fupkiong duqc th6a'mdn viau nhu.thri tuc

du'6i tfdy: e rr -D eeYv r'vq 'r4rr' v

'Thri tgc l_)m vi6c t6t, kh6ng bi I6i

Fange (i 83" ) se Acrrvece Il Eomu Rang€ (, B4i J , SeL€c Range ('85') selecr

iil"'Ji.'ill;i;iTllaRrcl ' 'rruonq Dar hoc M6 Dra chlic, Actlv€Celt FomulaRtct _,,xg

thuong chi chri'a

Trang 23

r- -.r\ qud trinh thy'c

Range ("AI", Value = i

MsgboxRange (,,A1 ) Value

LoopUntili>10

End Sub

2.5 Luu tqp tin c6 chfa macro

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

::ng viQc luu binh thuo'ng voi du6i xls thuong gap v6i dudj xls, r6p rin dd c6

.i chri'a bing tfnh ri6ng hodc ca macro Nhu'ng til Excel 20oj tr6 di, m6 hinh

: -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

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

- Dudi xlam: Tdp tin 6'dang Add-In c6 chila macro

- Dudi xls: Tdp tin 6'dang cfr (Excel 9j - 2003).

Trang 24

:Ec.l 97-m]T.npl.l f {0 m.cditq 4ddr ld d4Td (T!b d.tinit.dl F M)sw h.(k.d-out itcs toii j untoot ra r u)

iCsV {u.(norh) f ,!t,

choorc dil cototr wiil 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

Trang 25

[bm; trong Save file in

r luu v6i du6i mac tlinh

rBA)

rnacro v6i du6i xlsx thi

b aO .toi ring ki6u dudi

lr v6i vhng bAm Yes thi

To sve a fle with thF ftitfB, d* t{o, md thm drm a mamcnaHcd file vpe in he fie Type list.

To cstirDe savinqda mm-fie *trkM'd*YEs'

,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

21

Trang 26

- D6i tuo3g (object) trong worksheet ho{c bitSu d6.

sau

- Thanh menu cta Excel 2003 tr6 v6 tru6c hoic

Ribbon tir.Excel 2007 vd

- oidu khirin trong Form controls, ActiveX contrors,

3.1 Ihgc hi?n tr} mQt d6i tugng v€ trong worksheet

c6 nhi6u d6i tuo.ng vE trong worksheer

c6 thti tli6u khi6n macro, vi du

nhu ctiii tuo.ng aO hqa trong worksheet Cric bu,6c thg.c hiQn nhu sau:

l Chqn Sheer3 hay bdt cri.worksheet nlo cdn tr5ng.

2' Vio Ribbonrnsert vd chgn shapes

Trong shapes c6 nhirSu d6i tuo.ng vE

3 V6 hinh hinh chfi,nhat vedinh dpng l4i 3D cho rlgp

hi€n cha 1.

2.

Gkhoi ch6

vi bdm tt

phai chu

trong.daVr

chring th

thrh tgc

ifi' Uf,

pivotT

Trang 27

4 G6 nOi dung "Dia chi tuy€t d5i" veo

phii chudt vdo r6i chen Edit Text ti'thpc tron ,ai, |""-ao ffi;;

"g"aj ecit "".^'

- , 5.Jdm phdi.chuQt vdo hinh chfi'nh0t d6, chgn Assign Macro dii g6n th[

tuc cho tldi tu-ong 116.

, A ^!, Trone Assign Macro, chgn macro Dia-chi-tuyet-doi (Hinh 2-6) vir

bdm OK

Nhu vfy, hinh chfi'nh4t crd cru-oc g6n didu ktri6n thfi tuc vd chring ta rhuc

hi€n chay macro:

1 Chgn I d nio cl6 (vf ds nhu: 6 Jl3)

2' Bdmvdo hinh chfi'nh6t tr.n, macro Dia-chi -tuyet-doi s€ thgc hign.

Ghi chri: Da di cluy€n d6i twng d1 hoa (c6 gcin criiu khidn macro) ra

tlii,cna

vi bdm trdi chuQt thi ma*o

_sd tnurc htcn) cdn nVi

^"a" sri"-rinrro *ia", [i*

phai chu6t tan d6i tryng d6, chqn Aisign Macro vd rqra chgn macro ndo khdc

Trang 28

3,2 ThLrc hi?n tt thanh menu Excel 2003

Til thanh menu Excel 2003, chring ta c6 thti tqo ra ciic menu mdi md khi

lga chgn thi macro sE thq'c hi€n Vi dg nhu tao menu mdi c6 tOn Macro2 nim

ngay si{t menu Help, menu Macro2 c6 chta menu con "Work Address" Tru6c

khi thqc hiQn, phii chic chin rang Workbook chfia macro dang duo c kich hoat

(nt5u kh6ng phii m6'ra) Cdch thu'c hi6n nhu' sau:

l Trong menu Tools/Customize, chqn tab Commands trong bing

Customize

2 CuQn xu6ng ddng cu6i cirng vh chgn New Menu trong Categories

(Flinh 3-2)

3 Gifi'trdi chuQt 6'New Menu trong Commands vi k6o vio ddng menu

c4nh Help (tui y chAn vi tri trong thanh menu).

4 Birmphdi chuQt vho New Menu trong thanh menu, thgc don t6t hiQn ra.

5 Thay tOn m6'i trong Name li & Macro2 N6u chi cAn menu n)y (menu

mq) thi bdm vho Assign Macro tl€ chgn macro (Ffinh 3-3) Cdn n€u cAn th6m

cdc menu con (menu item) thi khdng cAn g6n thir tr,rc, vi menu mg chi mang tinh

quAn lf.

l€ ";;, ri,.:,iti i:"rrr'l J:ii,rk r

*il:nru,€di .vi"* In,*t irLu d q!a:1lirr iu lr,'l!

1000/o ;

Ir 1

r{_t4

Hinh 3-2: Tao New Menu trong thanh menu crla Excel

Fgrhat Iools qrta Utndm t"tp lffil

riq

Trang 29

cic menu m6'i md kht

si c5 tOn Macro2 nim

[-.-rk Address" Trudc

o ,lang duo-c kich hoat

ommands trong bAng

t{eau trong Categories

ri k6o vdo ddng menu

tu thgc don tit hiQn ra.

d cin menu ndy (menu

Trang 30

(Hl

V6thuniy

Trang 31

it_i r -ur, chgn Macros.

: ' _t;Lr triii vd k6o chu6t

- Reset Button Image: Thitit tr4p lai hinh g6c cria menu con (vi du * ).

- Edit Button Image: Srj,a hinh cfia menu con theo y mudn.

- Change Button Image: gOi trinir cia menu con (Flinh 3_5).

- Default Style: ThitSt hp kitiu mac dinh cfia menu con, g6m c6 hinh vd chfr

- Text Only: Chi c6 chfi.trong menu con (kh6ng c6 hinh)

Ej d."-r,,-l:,

HoD Inr.t p.gr rayout fornurrr oar , ahlong 2,xrsm - Miooioft Ex<el

€Vraw Vilw Ocvetoprr

3.3 Thgc hi?n trl d6i tugng trong Form Controls

i ^;0n hiQn h['u trOn

[-:-_: no Khi b6m vdo

r - -i:': luOn.

r: :^-.:cr duoc cdc menu

r \l=,-ro.r cdn c6 nhfr.ng

n iu

:4

";

l'

;-5

';' :

Trang 32

3.4 ftay Odi tga chgn trong macro

_ N€u mu5n thay rltii cdc lg'a chgn chi ti6t rong.macro, dAu ti6n chring ta

vdo Ribbon Developer vd chgn Macros (hopc phim tit Alt+Fg) cti'a s6 tvta"cro

hipn ra nhu hinh 3-8 v6i danh s6ch toin b6 macro.

o Options: Khi chgn pptions, cta s6 Macro Options hiQn ra (3_g).

chring ta c6 the thay tt6i phfm tit vd m6 t6 l4i c6ng vi€c macro trong

Description

' Edit: Khi chon muc niy, cfi'a s6 Microsoft visual Basic (MVB) hiQn

ra vi con chudt sE nh6p nhr{y t4i vj tri cia macro tI6 chfng ta c6 thii sri.a

AOi nQi dung tireo y mu6n,

"a *i, JiC" ph6i ctring md l€nh VBA

r Delete: X6a macro, tru6c khi thgc hi€n Excel sE h6i c6 chic ch6n x6a

hay khdng?

r Macros in: Hi6n danh sr{ch c6c macro tDy thu6c vio c6c truong hop

chon trong h6p cuQn thd xu5ng

- All Open Workbooks: Todn bQ workbook tlang m6

- ThisWorkbook: Chi trong workbook hi€n hhnh.

- Tdn ttmg workbook dang duo-c m6.trong Excel

Ngay phfa du6'i mgc "Macros in,' li Description (mdu xanh),

Description mO td sg hoat ddng c0a tilng macro trong dbng phia du6i

M&o nami Ua-.H-lr4ot_doj Shqtcut !.yl

ar-i -"il l 06<rbtlml inhqp o".6 u*o u *

Trang 33

o c6ch l: vbo Developer vh chon Macros, tim t6n macro ndo ct6 vh b6m

Edit

o ci4ch 2: vdo Developer vd chgn visual Basic (hoac phirn t6t

Alt+Fll).

4.1 C6u trric cr?a sd mVB

Crh'a sd MVB h noi quin lf,.luu tr[' todn_b6 c6c thri ruc (macro) cfrng nhu

c6c dg 6n xdy dung trong VBA C6u trfc cria sO Ir{Vg nhu sau:

' ' Ddng tr6n cing g6m c6 biiiu ruo.ng vd t6n cri'a s6 MVB, tiiip d6 li tOn

cria Workbook, cu6i cDng li du 6n chring tu dung thgc hiQn.

Trang 34

' Ddng th0' hai !d cdc menu didu khirin chf'a trong thanh menu crla

Range('86').Select Acbivecell.FormulaRlCl - nxa Ddng Nqac,

Hinh 4-l: C&a sO Microsoft Visual Basic for Applications (MVB)

36

Trang 35

ftranh menu cta

,ts=-5.+

HUioO wiiE

- .g {o.

:'o

E

c ,-

F

F?SFFE E-o'diS 3^5c

<o

Er oX

Vr tri hang va c6t cira chuof

Hinh 4-2: cdc nrit l€nh trong c6ng cu ti€u chudn cia ciya s6 vtvg

Hinh 4-3: Ciic thanh c6ng cu Debug, Edit va UserForm rrong MVB PhAn di€n tich l6n nh6t cri,a s6

D6 lh noi soan thio m6 l6nh (code) ha

thir tuc, him s6 du-oc hiiin thi trongExcel C6 thri coi module lh noi qudi(Function) Phia tr6n cfi'a s6 soan codkiQn" N6i dung ndy sE rlu.o-c d€ cdp chiCri'a s6 nim du6i cins

MVB Oe ni6n thi Immediat!

Window (phim t6t Ctrl+G) c

JhOnp thuong cri'a s6 Immediate nim pl

chuy6n, thay t16i kich thu6'c theo y nuon N6i dung ndy so duoc d6 cdp 6.mr,rc

4.3.

t|lc(Sc"hdtthimacrophaildtltu

tLlanF, cdn hdm W tq.p (Function) thi chi ldm vi€c ,r";;t."r:l;?r!:;;I"tr?:;

vi vQy, chfing ta str dung thu tuc vii hdm ,n ,o,o ae iay tha t ng* macro n6ichung.

Trang 36

4.2 C'ila sd sogn thdo code (Code window)

DAy l) noi chi'a vi qu6n ry c6c thi tuc vd him tu'l0p.M6t th0 ruc duo-c

bit <Idu v6'i Sub v) k6t rh(; b6'i EndSub ua-,1, rap b6,;i; il^ing nunction vd

k6t thric bo'i EndFunction

' [)i

, *._,_ tyl :.1 : i

Funct dung

cAy v

chri t

chLinl d0ng

chf tl

se oe l€nh.

l6nh t

,Annat, I

tgc vil'kh6ng

Hinh 4-4: Ct}a s6 soan thdo code

Hinh 4-5: Danh sdch cdc chuong tr'inh duoc xay dung rrong ting module

Trang 37

[t thu tuc cluo-c

dung b6n mdu xanh da troi (Flinh 4-4, 4-5) Noi

- Tit5p theo ld noi so.n thio- md lQnh (code),.ch'ng

quyist e;nn sg lim vi6cctia macro chring ta c6 th6 r,iu aoi, inc- uot noia"ng;iLi; cho phir ho.p.

- Duong mau

$3n.li€n _dai c6 y nghTa ph6n chia ci4c Sub (thri tyc),

-u"ro.''

Khi c6ng vipc hodn thdnh, chuy6n sang 6 c3 Sau d6 b6m nft dil.ng ghi

acro lim vipc nhu tht5 n)o bing cr{ch

chring ra m6,module nho c6 chi,a th0

sau (116 lu.o-c b6t nhD.ng khodng tr6ng

Sub Kiem_tra ( )

'Macro recorded 12/3I/2OlO by phanTuHuong

Range("r-3").Select

Trang 38

V6i thrl ruc ho{c h}m, chring ta

quy djnh cria ng6n ngfi.VBA thi mji cO

!hinh 4-

Trang 39

Ba lenh tu nhi6n xu6t

h nqc dinh sEn trong

roa nhring ddng code

c-lim vi6c cria chring

a rhuc hiQn c6ng vi6c

se eifp chring ta trd

r djng ngi'phrip Di5

lenh thay vi 96 chfi'

Joan md theo dring

I thuc hi6n (thi hhnh

n sodtl Trong khi d6

il the hi6n tr6n Excel

Hnh 4-6: Cira sd lmmediare

Vi du tai hinh 4_6, tirng c6u l6nh thuc hiQn c6ng vi6c nhu, sau:

Worksheets (,,Sheet5,,) .Activate ,Klch hoat Sheet5

Ranqe ("e2,,1 Sefect ,.h^- A r.

Range ("B5"r.Font.co-Iorrndex = 3 ,Bi6nchrl tai 6 Bsthenh miu dd Range (,'BS,, r.Font.Bo]d = True

Ranse ("8s,,).uon rraric = rrue f:H :l$ :li 3 lfuiTnru,,"

n,* oli :-":,ru1o.ft, c0,a s6 MVB s€ hi6n thj Vf ds tai

rt6 kh6ng t6n tai (Flinh 4_8t.

4.4.HiQu chinh macro trong MVBCri'a s6 MVB (Hin

nhu ffong w";; cr,l"r' 'ffiT$",::&t#lfiTS

Norksheebs (" Bai bap" ) Sefect

Trang 40

4,4,1,Thay O6i ten c0a th0 tuc

can t ngen thri tr,rc Kiem_tra lai bdng cdch

Sel-ecti_on Font Bold : True

Sel_ection Font ItaIic = True

Hdy ch4y rht'rhi tuc tr6n, chic ch6n k6t qu6 v6n nhu tru6c khi srl'a Nhu

vay, sau khi ghi macro, ndn loai b6 nhfr'ng md l6nh kh6ng cAn thit5t, trdnh vi€c

vBA thg'c hiQn nhfr'ng cdng vi6c thila D6 loai b6 rnd l€nh ihila, chring ta phai io

s6nh gifla c6ng vi6c da thg'c hiQn tu'b)n phim v6i n6i clung m6 cira macro ghi

lai, tir tl6 tim ra su khdc nhau gila ch(ng Ngodi ra, c6ng viec ney cdn ddi h6i

42

Sub Address_Abs o ' Ldclresa Abs Mscr:cr

' Enter address irr cefL E3

Range (" 83' ) SeIecE ActiveCeJ_I FormulaRlCl =

Range (" 84" ) 9etect

At

Ac Kc Ac

R;

Ngày đăng: 03/10/2019, 03:17

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w