Tải bản đầy đủ (.doc) (78 trang)

TÀI LIỆU LẬP TRÌNH VBA TRONG EXCEL

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 (2.92 MB, 78 trang )

Lp trỡnh Visual Basic (VBA) trong Excel
BI 1 GHI V THC HIN MACRO
I. Macro l gỡ?
Macro l tp hp mt s cỏc dũng lnh.
Bn s dng chc nng Macro Recorder l mt ý tng hay tng bc thc
hin cỏc cụng vic, nht l lỳc u tỡm hiu v macro. Excel ó h tr ghi li
(recorder) cỏc cụng vic bn ó thc hin v ch khụng ghi li khi bn dng ghi.
Vớ d, mt ụ (cell) c chn (selected) hin ti s khụng c ghi cho n khi
bn thc hin cụng vic trong ụ ú. Ngoi ra, Excel cng khụng ghi li cỏc cụng
vic khi ang s dng bng iu khin (dialog box) cho n khi bn n nỳt OK trờn
bng iu khin ú.
Hỡnh 1: Thc hin ghi macro
Hỡnh 2: Ca s Record Macro
Trong sut thi gian ghi, macro ó c lu li vi tờn xỏc nh trong module,
module c to ra trong quỏ trỡnh ghi v l mt phn ca Workbook. Marco c
ghi li cú th c lu trong This Workbook (Workbook hin hnh), New
Taực giaỷ:

Phan Tửù Hửụựng
Tr- 1

Workbook (Workbook mới) hoặc trong Personal Macro Workbook (những macro
sở hữu riêng). Những lệnh (code) được lưu trong Personal.xls, những macro sở hữu
riêng đều sử dụng được khi bạn mở Excel ra. Các macro trong các Workbook khác
nhau có thể sử dụng bất cứ lúc nào khi các Workbook đang mở (kể cả sử dụng
chúng từ Workbook khác).
Điều kiện để có thể tiến hành ghi macro:
1. Bảng tính Excel hiện hành (Activate Excel).
2. Sử dụng Workbook mới.
II. GHI MACRO
1.Ghi macro trong trường hợp sử dụng tham chiếu địa chỉ ô tuyệt đối.


Bạn hãy ghi lại macro trình bày tên bạn và địa chỉ như sau:
1. Trong Tools/Macro, chọn Record New Macro (hình 1).
2.Trong Macro name: gõ Address_abs để đặt tên macro đó (hình 2).
Đặc điểm là ký tự đầu tiên là của tên macro phải là chữ. Còn các ký tự khác có
thể là chữ, số hoặc ký tự gạch dưới (ký tự _). Các ký tự đặc biệt như khoảng trống
(Space), @, %, $, #, &, không được chấp nhận, bạn có thể dùng ký tự _ để tách
tên trong macro.
Hình 3: Quá trình ghi
Trang 2
Lp trỡnh Visual Basic (VBA) trong Excel
3. Chuyn sang Shortcut key: trng (s thc hin sau).
4. Trong Store macro in: mc nh l This Workbook.
5. Trong Description: bn gừ ni dung sau
Enter address starting in cell B3
6. Bm OK.
7. Thanh Stop Recording s xut hin. Bn cú th di chuyn nú n v trớ khỏc
nu thy cn thit.
8. Trong thanh Stop Recording, n vo nỳt Relative Reference cho m i (khụng
tỏc dng- hỡnh 3).
9. Trong Sheet1, bm vo B3 v gừ tờn bn. ễ di gừ tờn lp, tip theo l tờn
trng.
10. Cho ton b cỏc ch m v nghiờng.
11. Bm vo ụ B6.
12. Trong Stop Recording, bm vo nỳt Stop Recording.
Nh vy, macro cú tờn Address_abs ó c ghi li. Nhng ụ m bn ó s
dng trong quỏ trỡnh ghi c th hin di dng a ch tuyt i. Vỡ vy, nhng ụ
trong Worksheet ú s thc hin khi bn cho chy macro, tờn, lp v tờn trng s
c to ra ỳng v trớ trong Worksheet
2. Ghi macro trong trng hp s dng tham chiu a ch ụ tng i
Macro Address_abs s dng a ch ụ tuyt i. Tip theo bn s to mt

macro cng ging nh trờn. Macro trc ó chn cỏc ụ (select cells) cú quan h vi
v trớ ca ụ hot ng (active) trong quỏ trỡnh chy, macro s ghi li quan h tham
chiu ụ tng i.
1. Chn Sheet1.
2. Bm vo ụ B11.
3. Trong menu Tools/Macro, chn Record New Macros (hỡnh 1).
4. Trong Macro name: gừ Address_Ref t tờn macro ú (hỡnh 2).
5. Trong Shortcut key: Gừ ch A, nh vy phớm tt s l Ctrl+Shift+A (Nu phớm
tt b trựng vi phớm cú sn thỡ Excel t ng b sung thờm phớm Shift nh
trng hp ny).
6. Trong Store macro in: mc nh l This Workbook.
7. Trong Description: bn gừ ni dung sau
Enter address starting in activate cell position
8. Bm OK.
9. Thanh Stop Recording s xut hin. Bn cú th di chuyn nú n v trớ khỏc
nu thy cn thit.
10. Trong thanh Stop Recording, n vo nỳt Relative Reference cho m i
(khụng tỏc dng).
Taực giaỷ:

Phan Tửù Hửụựng
Tr- 3

Microsoft Excel sẽ tiếp tục ghi macro với quan hệ tương đối cho đến khi nào
thoát khỏi Microsoft Excel hoặc bạn ấn lại vào nút Relative Reference.
11. Gõ tên bạn, lớp, tên trường và địa chỉ trong các ô B11, B12, B13 và B14. Nội
dung thể hiện như sau:
Nguyen Van Hung
Lop DCCT-DKT K48
Truong DH Mo Dia chat

xa Dong Ngac, Tu Liem, Ha Noi
12. Cho toàn bộ các chữ đậm.
13. Bấm vào ô B15.
14. Trong Stop Recording, bấm vào nút Stop Recording.
Ghi chú: Nếu bạn muốn macro chọn ô đặc biệt, đầu tiên chọn ô đầu (active
cell), sau đó chọn ô có quan hệ với ô đầu, bạn có thể lựa chọn hỗn hợp địa chỉ tuyệt
đối và tương đối trong quá trình ghi macro.
Để sử dụng tham chiếu tương đối trong suốt quá trình ghi macro, nút Relative
Reference luôn sáng (có tác dụng).
Để sử dụng tham chiếu tuyệt đối trong suốt quá trình ghi macro, nút Relative
Reference luôn tối (không tác dụng).
III. CHẠY MACRO
1. Chạy macro khi sử dụng bảng điều khiển macro (Macro dialog box)
Bạn cho chạy macro trên từ Sheet2 như sau:
1. Chọn sang Sheet2 và bấm vào ô nào đó ngoài ô B3.
2. Trong menu Tools/Macro, chọn Macros (hình 1).
3. Bấm vào macro có tên Address_abs trong danh sách macro (hình 4).
4. Bấm vào nút Run.
Sau đó bạn sẽ thấy nội dung ở Sheet2 giống như ở Sheet1.
Trang 4
Lp trỡnh Visual Basic (VBA) trong Excel
Hỡnh 4: Chy macro Sheet2
Ghi chỳ: Nu bn mun hu quỏ trỡnh chy macro trc khi kt thỳc, n vo
nỳt Esc
2. Dựng phớm tt thc hin mt macro (shortcut key)
Macro Address_Ref cú th thc hin nh mụ t trong mc 2.2. Lỳc trc
phớm tt ó c n nh thc hin cụng vic ú, hóy s dng phng phỏp thay
th ny:
1. Ti Sheet2 bn chn vo 1 ụ (vớ d ụ H14).
2. n t hp phớm Ctrl+Shift+A. Khi ú tờn v a ch s xut hin di ụ ú.

3. Bn hóy th thc hin li macro ú ti cỏc v trớ khỏc trong Sheet2.
3. Thc hin macro t mt i tng ho trong worksheet
Bn cú th dựng i tng ho trong worksheet thc hin mt macro.
1. Chn Sheet3, ni m cũn trng.
2. Vo menu View/Toolbars v bn chn Drawing (tr trng hp thanh cụng c
Toolbar ó cú trờn mn hỡnh).
Taực giaỷ:

Phan Tửù Hửụựng
Tr- 5

3. Chọn đối tượng đồ hoạ như hình Oval và vẽ hình oval đó.
4. Gõ chữ vào hình oval đó bằng cách ấn phải chuột vào rồi chọn Add Text từ
thực đơn tắt (hình 5).
5. Gõ nội dung Address rồi bấm ra ngoài để thoát.
6. Bạn có thể thay đổi kích thước hình oval cho phù hợp để thể hiện đủ nội dung
chữ ở trong và tính mỹ thuật.
7. Ấn phải chuột vào hình oval đó, chọn Assign Macro.
8. Trong bảng Assign Macro, chọn macro có tên Address_Ref.
9. Sau đó ấn OK.
Sau đó, bạn cho thực hiện thử macro:
1. Chọn 1 ô nào đó (ví dụ như ô J13).
2. Bấm vào hình oval trên, macro sẽ thực hiện.
Ghi chú: Nếu bạn muốn di chuyển đối tượng đồ hoạ (có macro) ra khỏi chỗ
khác trong worksheet, sử dụng phải chuột để di chuyển (vì bấm trái chuột thì
macro sẽ chạy). Còn nếu bạn muốn thay đổi macro khác thì bạn bấm phải chuột
trên đối tượng, chọn Assign Macro và lựa chọn macro nào bạn muốn.
Trang 6
Lập trình Visual Basic (VBA) trong Excel
Hình 5: Gán macro vào hình oval

4. Chạy macro từ nút lệnh trên thanh cơng cụ
Ngồi ra, có thể chạy macro từ nút lệnh (button) trong các các thanh cơng cụ
tự tạo (custom toolbar). Ví dụ như có thể ấn định macro Address_abs trong nút
hình mặt cười (Smiley Face) như sau:
1. Di chuyển chuột đến một điểm nào đó trong các thanh toolbar.
2. Ấn phải chuột, trong thực đơn tắt chọn Customize.
3. Trong bảng Customize, chọn tab Toolbars (hình 6).
4. Chọn nút New.
5. Sau đó bảng New Toolbar xuất hiện và bạn gõ tên vào (Macro1) rồi OK.
6. Trong bảng Customize, chọn tab Commands (hình 7).
7. Trong hộp Categories, chọn AutoShapes.
8. Trong Commands, cuộn xuống cho đến khi bạn chọn được hình ưng ý (Smiley
Face).
9. Tại hình Smiley Face, giữ trái và kéo chuột vào trong thanh cơng cụ Macro1
(hình 8). Bạn có thể chọn thêm các biểu tượng khác nếu cần.
10. Bấm phải chuột vào nút Smiley Face, thực đơn tắt sẽ hiện ra. Bạn có thể sửa
hay xố hình đó và thay bằng các hình khác.
11. Chọn Assign Macro trong thực đơn tắt, chọn macro Address_abs và ấn OK.
Tác giả:

Phan Tự Hướng
Tr- 7

12. Đóng bảng Customize vào.
Hình 6: Tạo thanh công cụ mới
Trang 8
Lp trỡnh Visual Basic (VBA) trong Excel
Hỡnh 7: Gỏn hỡnh vo nỳt lnh mi
Hỡ
nh 8: To cỏc nỳt lnh trong thanh Macro1 v gỏn Assign Macro vo.

Taực giaỷ:

Phan Tửù Hửụựng
Tr- 9

Ghi chú: Thanh công cụ tự tạo thuộc sở hữu của workbook mà nó được tạo ra.
Bạn hãy thử sử dụng nút lệnh vừa tạo ra để thực hiện công việc như sau:
Code:
1. Xoá sạch nội dung của Sheet2.
2. Bấm chuột vào nút Smiley Face trong thanh công cụ Macro1.
Kết quả sẽ thể hiện trên Sheet2.
5. Chạy macro từ lệnh trong menu của Excel
Từ menu của Excel bạn có thể thêm các menu mới mà khi lựa chọn chúng thì
macro sẽ chạy. Ví dụ: Tạo menu mới có tên là Work Address có thể chứa menu
con Macro2 trên thanh tiêu chuẩn như sau:
1. Phải đảm bảo rằng workbook đang chứa macro của bạn đang hoạt động.
2. Thêm một worksheet mới bằng cách vào menu Insert/Worksheet (đặt là
Sheet4)
3. Trong menu Tools/Customize, chọn tab Commands trong bảng Customize.
4. Cuộn xuống dòng cuối cùng và chọn New Menu trong Categories (hình 9).
5. Giữ trái chuột ở New Menu trong Commands và kéo vào dòng menu cạnh
Help.
6. Ấn phải chuột vào New Menu trong menu của Excel, thực đơn tắt hiện ra.
7. Thay tên mới trong Name là &Macro2. Nếu chỉ cần 1 menu này thì bấm vào
Assign Macro để chọn (hình 10). Còn nếu cần thêm các menu con (menu item)
thì không cần.
Hình 10: Tạo menu Maro2 trong menu của Excel
Trang 10
Lp trỡnh Visual Basic (VBA) trong Excel
Ký t v (&) trc M s gch chõn ch M trong menu Macro2 (tr thnh

Macro2), ú chớnh l phớm tt chy macro Macro2 (ch cn n Alt+M).
Tip theo ta tin hnh to menu con trong Macro2:
1. Trong Categories (trong trng hp bng Customize vn ang m), chn
Macros.
2. Ti Commands, chn Custom Menu Item (hỡnh 11), gi trỏi v kộo chut n
phn trng di Macro2 (vựng c khoanh ).
3. Bm phi chut vo Custom Menu Item trong menu m Macro2.
4. Ti thc n tt, i tờn trong Name thnh &Work Address (hỡnh 12).
5. Sau ú vo Assign Macro chn macro chy.
6. Cui cựng l úng bng Customize.
Hỡnh 11: To cỏc menu con
Taực giaỷ:

Phan Tửù Hửụựng
Tr- 11

Hình 12: Đổi tên menu con và gán Assign Macro cho nó.
Menu mới tạo được lưu giữ trong workbook đó. Kể cả bạn đã đóng workbook
nhưng khi bạn bấm vào menu thì workbook chứa menu đó tự động mở ra và thực
hiện lệnh luôn.
Trang 12
Lp trỡnh Visual Basic (VBA) trong Excel
BI 2. CHNH SA MACRO
1. Thay i la chn trong macro
Nu bn mun thay i cỏc lc chn chi tit trong macro, bc u tiờn bn
vo menu Tools/Macro v chn Macros. Sau ú chn tờn macro m bn mun thay
i v bm vo nỳt Option. Bn cú th thay i phớm tt v mụ t li cụng vic
macro trong Description.
2. Sa mó ngun macro
Khi bn ghi macro u tiờn, Excel to ra molule trong workbook ú. Module

ú cha cỏc lnh (code) c vit trong VBA. Cỏc bc thc hin nhỡn thy
module:
1. T menu Tools/Macro chn Macros.
2. Chn macro Address_abs v bm vo nỳt Edit.
Ca s Microsoft Visual Basic hin ra nh hỡnh 13. Bn cú th thy rừ c cỏc
dũng code tng macro khi cun xung.
a. Dng form chung (General form)
T khoỏ (keywords) l s hng c bit trong VB, c th hin bng mu
xanh lỏ cõy. Tt c cỏc macro u bt u vi Sub v kt thỳc bi End Sub (cũn
gi l th tc).
Dũng mu xanh ú vi du u dũng c gi l chỳ thớch (comments).
Li chỳ thớch khụng anh hng n macro v bn cú th thay i ni dung ca nú.
Tờn ca macro v li mụ t s dng (description) trong quỏ trỡnh ghi macro xut
hin di dng chỳ thớch. Bn cú th dựng comments chỳ thớch trong quỏ trỡnh
xõy dng macro. Khi ú bn s d dng hiu c cỏc bc cng nh ni dung
thc hin macro.
ng en lin cú ý ngha phõn chia cỏc macro, function (hm) trong module.
ng gch di (_) thnh thong gp cui dũng code. Khi code quỏ di thỡ dựng
(_) xung dũng, nhng c hiu l code vn liờn tc.
Khi bn ghi macro phc tp hn, bn cú th gp mt s code khụng phi l
bn cht ca nú (essential). Excel ghi li tt c nhng gỡ bn thc hin mt cỏch c
th nht, k c nhng i s (arguments) ci t mc nh trong Excel ó s dng.
Khi bn di chuyn chut n macro no thỡ tờn ca macro ú hin phn khoanh
nh hỡnh 13 (Addres_Ref).
Taực giaỷ:

Phan Tửù Hửụựng
Tr- 13

Hình 13: Cửa sổ Microsoft Visual Basic.

b. Tạo ra những thay đổi
Trong cửa sổ Visual Basic Editor(VBE) (hình 13) có các module. Có thể coi
module là nơi lưu trữ các thủ tục (sub) và hàm (function). Đây cũng là nơi khai báo
các hằng số, biến số, kiểu dữ liệu người dùng. Mỗi module có thể chứa một hay
nhiều Sub hoặc Function. Phần cửa sổ chính hiện nội dung code trông gần giống
như Word, bạn có thể dễ dàng tạo những thay đổi trong đó, như bổ sung hay bớt đi
nội dung nếu thấy cần thiết.
Ví dụ, bạn có thể thay đổi tên macro Address_abs thành Dia_chi chẳng hạn,
chỉ cần gõ nội dung Dia_chi thay thế Address_abs trong Sub Address_abs(). Khi
con chuột nằm trong macro Dia_chi, bạn vào Run và chọn Run Sub/UserForm
(phím tắt F5). Để xem kết quả như thế nào thì bạn vào View/Microsoft Excel
(phím tắt Alt+F11). Lúc đó của sổ VBE vẫn hiện hữu trong Task bar.
Để đóng cửa sổ VBE và trở về Excel, bạn vào menu File, sau đó chọn Close
and Return to Microsoft Excel (phím tắt Alt + Q).
Trang 14
Lp trỡnh Visual Basic (VBA) trong Excel
Ghi macro v xem li nhng gỡ nú thc hin l cỏch hc rt hay, giỳp cỏc bn
cú th hc hi thờm nhiu lnh, nhiu i tng v cỏc thuc tớnh ca nú, hiu rừ
trỡnh t cỏc bc thc hin. Nhng n mt lỳc no ú, bn mun vit mt macro
cho riờng mỡnh hoc b sung thờm mt vi code trong macro hin ti thc hin
cỏc bi toỏn phc tp hn. Khi ú vic s dng ghi macro tr nờn khụng hu dng
na.
Macro khụng th thc hin c cỏc tỏc v sau:
_Cỏc kiu vũng lp.
_Cỏc kiu hnh ng theo iu kin (s dng If-Then)
_Gỏn giỏ tr cho bin.
_Cỏc kiu d liu c bit.
_Hin cỏc thụng bỏo (pop-up messages)
_Hin cỏc hp thoi (dialog boxes)
Trong chng di õy, bn cú th tỡm c nhiu thụng tin v VBA.

Taực giaỷ:

Phan Tửù Hửụựng
Tr- 15

Bài 3. ĐỐI TƯỢNG TRONG EXCEL
1. Các đối tượng (Objects)
Visual Basic là ngôn ngữ lập trình hướng đối tượng (object-oriented). Điều đó
có nghĩa là các thành phần trong Excel có thể coi là các đối tượng. Excel có hơn
100 đối tượng. Để cho các bạn dễ hình dung chúng ta có thể lấy một ví dụ như sau:
Ta có một chiếc xe máy của Honda, đó có thể xem là một đối tượng. Honda có
nhiều chủng loại xe máy như Future, Future II, Future neo; Super Dream; Wave
anh-pha Vậy ta có thể xem Xe máy của hảng Honda là một tập hợp, trong tập
hợp này có các đối tượng cùng nằm trong một nhóm như Future, Future II, Future
neo.
Ví dụ dưới đây là những đối tượng trong Excel:
• the Excel application (là ứng dụng trong Excel- đối tượng lớn nhất- hình 14)
• a workbook (chính là file excel)
• a worksheet (là các sheet trong workbook)
• a range (là vùng)
• a chart (là biểu đồ)
Hình 14: Các đối tượng trong Excel
Trang 16
Lập trình Visual Basic (VBA) trong Excel
Bạn có thể coi những đối tượng trên như là danh từ (ví dụ: cái bánh là danh
từ). Trong macro bạn lập, mà Range(“B3”) chính là đối tượng.
Đối tượng này có thể chứa các đối tượng khác ở trong nó. Đối tượng
Application ở bậc cao nhất (đối tượng mẹ), bao gồm tồn bộ đối tượng trong
Excel. Những thay đổi xảy ra trong đối tượng Application ảnh hưởng đến tồn bộ
nội dung trong nó. Đối tượng Application có chứa đối tượng cũng lớn như

Workbooks. Ví dụ như sau:
Application.Workbooks đề cập (refer) đến tất cả workbook đang mở trong
Excel.
Workbooks.Item(1) đề cập đến workbook đầu tiên và thường được gọi tắt là
Workbooks(1).
Workbooks(“Seles.xls”) sẽ đề cập đến workbook tên đó.
Trong workbook thường chứa các worksheet, trong mỗi worksheet đó chứa
nhiều ơ (cell). Bạn có thể đề cập đến ơ B3 như sau
Workbooks(“Seles.xls”).Worksheets(“Sheet1” ).Range(“B3”)
Trong lúc workbook đang làm việc thì nó được gọi là active workbook
(workbook hiện hành), worksheet nào đang hiển thị thì được gọi là active
worksheet. Nếu bạn có vài worksheet đang hiển thị, worksheet nào đang có trỏ
(cursor) ở trong nó thì được gọi là avtive. Nếu bạn có vài workbook đang hiển thị,
workbook nào đang chứa active worksheet ở trong nó thì được gọi là avtive
workbook.
Nếu bạn khơng muốn thực hiện riêng trên workbook hay worksheet nào, VBA
sẽ thực hiện trên active workbook hay active worksheet (mặc định). Còn nếu bạn
thực hiện theo ý muốn, thì cần thực hiện như ở trên (Range(“B3”)).
Còn Sheets lựa chọn tồn bộ sheet trong workbook, kể cả chart sheets (biểu
đồ) và worksheets.
Sheet(“Year2006”) sẽ tham chiếu đến sheet có tên là Year2006.
Chart(1) sẽ tham chiếu đến chart sheet theo thứ tự tab.
2. Các phương thức (Methods)
Các đối tượng có các phương thức mà có thể thực hiện các hành động trong
nó.
Nếu ta xét đến đối tượng là Range, ví dụ dưới đây là các phương thức có thể
thực hiện:
• Activate (Hoạt động hay hiện hành)
• Clear (Xố)
• Copy (Sao chép)

• Cut (Cắt bỏ đi)
• Delete (Xố nội dung trong Range)
Tác giả:

Phan Tự Hướng
Tr- 17

• Select (Lựa chọn)
Các phương thức có thể được coi là động từ (ví dụ: bake là động từ).
Cú pháp của câu lệnh trong VB như sau:
Object.Method (Cake.Bake)
Trong macro bạn lập như sau: Range(“B3”).Select
3. Các thuộc tính (Properties)
Mỗi đối tượng đều có các đặc điểm riêng. Thông thường thuộc tính điều khiển
hình dáng xuất hiện của đối tượng.
Đối với đối tượng Range, các thuộc tính đặc trưng như sau:
• ColumnWidth
• Font
• Formula
• Text
• Value
Thuộc tính có thể được coi gần như là tính từ. Nó được thiết lập sử dụng trong
câu lệnh như sau:
Object.Property = Value hay Noun.Adjective = Value
Với macro trên:
ActiveCell.FormulaR1C1 = “Nguyen Van Hung”
Tất cả các đối tượng đều được thiết lập các phương pháp (methods) và những
thuộc tính (Properties) trong chúng.
Câu lệnh như: Range(“C3”).ColumnWidth = 14 sẽ thiết lập chiều rộng của
cột chứa ô C3 rộng 14. Excel mặc định chiều rộng của cột là 8.43 điểm (point).

4. Các biến (Variables)
Cũng như các ngôn ngữ lập trình khác, bạn có thể sử dụng các biến trong việc
tính toán. Bình thường, VBA không yêu cầu khai báo (declare) những biến. VBA
luôn tự động lưu giữ đối với những biến vào lần đầu tiên bạn sử dụng. Những biến
được tạo ra tự động là các dạng của biến thể (Variant) và có thể là những kiểu dữ
liệu như các chuỗi (strings), số (numbers), giá trị Boolean, các lỗi (errors), các
mảng (arrays) hoặc những đối tượng (objects).
Ví dụ dưới đây là khai báo ấn định là số 34 đối với biến X.
X = 34
Trong ví dụ dưới đây, biến số Number1 và Number2 được đưa ra ở giá trị ban
đầu và sử dụng chúng trong tính toán (vì chúng là số).
Trang 18
Lp trỡnh Visual Basic (VBA) trong Excel
Number1 = 3
Number2 = 9
Mynumber = Number*Number2
Taực giaỷ:

Phan Tửù Hửụựng
Tr- 19

BÀI 4. SỬ DỤNG CONTROL TRÊN WORKSHEET
Để sử dụng được các control này các bạn có thể Click phải lên thanh menu và
chọn Control Toolbox như hình 1.
Hoặc các bạn có thể vào View/Toolbars/Control Toolbox. Sau khi các bạn
chọn thanh toolbar sẽ xuất hiện.
Trên thanh công cụ này chúng ta thấy có các control chính sau:
_ Check Box.
_ Text Box.
_ Command Button.

_ Option Button.
_ List Box.
_ Combo Box.
_ Toggle Button.
_ Spin Button.
_ Scroll Bar.
_ Label.
Các control trên còn gọi là các ActiveX controls. Các bạn có tìm các
định nghĩa như hình bên dứơi đây.
Trang 20
Hình
1
Lp trỡnh Visual Basic (VBA) trong Excel
Chỳng ta s ln lt tỡm hiu v cỏc control ny.
1.Command Button (Nỳt lnh):
Cỏc bn hóy click vo biu tng th ba t trờn xung hỡnh bờn trỏi. V v
lờn worksheet xem sao?
Nu õy l ln u tiờn bn thc hin, thỡ bn lm theo cỏc bc sau:
_Click chn vo biu tng. Lỳc ny biu tng con tr chut s thnh hỡnh
ch thp. Bn kộo rờ vo khu vc m bn mun t nỳt lnh ny. Click v gi
chut phi, v hỡnh nỳt lnh. Sau khi xong bn th chut phi ra.
Bn hóy th cỏc bc nh trờn v ln lt nhn cỏc phớm Alt, Ctrl, Shift bn
thy iu gỡ xóy ra?
Bn chn nỳt lnh va mi v. Click phi chut v chn Properties.
Ca s Properties s hin ra nh hỡnh 3.
Taực giaỷ:

Phan Tửù Hửụựng
Tr- 21


Chúng ta sẽ có 2 tab. Tab thứ nhất các thuộc tính của đối tượng Command
Button sẽ được sắp xếp theo vần ABC. Tab thứ hai các thuộc tính sẽ được sắp xếp
theo Categorized (có thể hiểu là các thuộc tính được sắp xếp theo tính chất của nó).
Như các thuộc tính xác định kích thước của nút lệnh, vị trí của nút lệnh, font chữ,
Một số thuộc tính của nút lệnh thường dùng:
_Name: tên của nút lệnh. Tên này sẽ được gọi trong VBA. Thông thường nút
lệnh sẽ được đặt tên bắt đầu bằng cmd.
_Caption: tên được hiển thị trên nút lệnh.
_Accelerator: ký tự phím tắt nhằm làm cho việc gọi nút lệnh được nhanh hơn.
Nó cũng tương tự khi bạn gọi menu File bằng tổ hợp phím Alt + F.
_PrintObject: có giá trị True/False. True nếu bạn muốn khi in ra sẽ thấy nút
lệnh. False thì ngược lại.
_Enable: True/False, nếu bạn chọn giá trị False cho thuộc tính này thì nút lệnh
sẽ bị mờ đi và người dùng không thể thao tác với chúng.
_TakeFocusOnClick: True/False. Nếu bạn chọn giá trị False, thì khi bạn Click
vào nút lệnh này, con trỏ chuột vẫn ở vị trí trước khi bạn thực hiện Click vào nút
lệnh.
Còn những thuộc tính khác tôi nghĩ chúng ta không cần.
Hình 2
Trang 22
Lp trỡnh Visual Basic (VBA) trong Excel
Mc ớch chớnh ca nỳt lnh, nh cỏc bn ó thy qua tờn ca nú l nhm thc
hin mt on lnh no ú. Vớ d, cỏc bn hóy ch Design, tc l cỏc bn
s thy hỡnh cõy thc Ekờ chỡm xung. Cỏc bn hóy Double Click vo nỳt lnh
bn va v xong, bn s c chuyn qua mn hỡnh VBA, vi cỏc cõu lnh cú sn
nh sau:
Private Sub CommandButton1_Click()
End Sub
Bn hóy a on lnh ny vo trong th tc trờn
MsgboxCho bn,vbOKOnly,Thụng bỏo

Bõy gi bn hóy tr v mn hỡnh Excel (Alt + Q) v thoỏt khi ch Design
(Bn click vo nỳt hỡnh cõy thc Ekờ). V click vo nỳt lnh bn va vit on
mó cho nú, bn thy iu gỡ xóy ra?
2. Text Box:
Nhm giỳp cho ngi s dng nhp vo chui ký t.
_Name: tờn ca Text box, thụng thng c bt u bng txt. (Chỳ ý rng
cỏc Control no cng cú Tờn!)
Taực giaỷ:

Phan Tửù Hửụựng
Hỡnh 3
Tr- 23

_EnterKeyBehavior: True/False, cho phép hay không cho phép dùng phím
Enter.
_Font: Font được dùng cho Text box.
_Multiline: True/False, cho nhiều dòng hay không?
_TextAlign: Canh lề.
_LinkedCell: ô được link với Text box này.
3. Label:
Lưu chuổi ký tự.
_Name: tên của Label, thông thường bắt đầu bằng lbl.
_Accerlerator: tương tự ở phần Command Button.
_Caption: ký tự được thể hiện.
Lable là một Control để thể hiện text mà thôi!
4. Combo Box:
Một số thuộc tính thường dùng:
_Name: tên của Combo Box. Thông thường tên của Combo Box bắt đầu bằng
cbo.
_BoundColumn: Nếu danh sách của bạn có nhiều cột, thì thuộc tính này định

nghĩa cột nào là cột sẽ được lấy giá trị về.
_ColumnCount: Số cột được thể hiện.
Ví dụ tôi có danh sách khách hàng gồm các cột: Mã khách hàng, Tên khách
hàng trong danh sách của Combo box trên. Tôi muốn rằng combo box sẽ thể hiện
thành 2 cột, và khi tôi chọn thì giá trị lấy về sẽ là cột 1. Tôi sẽ thiết đặt
BoundColumn=1 và ColumnCount=2.
_LinkedCell: ô liên kết với Combo Box này. Bạn hãy thử thuộc tính này của
Combo Box bằng cách, chọn LinkedCell là A1. Rồi thoát chế độ design và thử
Trang 24
Lp trỡnh Visual Basic (VBA) trong Excel
thay i giỏ tr trong ụ A1 xem sao? Sau ú bn li thay i giỏ tr trong Combo
Box xem sao?
_ListFillRange: danh sỏch (hay khong) m bn mun Combo Box th hin.
Bn cú th a tờn vo thuc tớnh ny. Vớ d: sheet2 tụi t tờn cho khong
A4:B5 l danhsachkh.
Sau ú thuc tớnh ny ca Combo Box tụi a vo danhsachkh.
_ColumnWidth: l rng cỏc ct ca Combo Box. Cỏc bn ch vic a vo
con s cỏch nhau bng du ;. Vớ d 100;200. Sau khi bn chp nhn vic nhp
vo bng cỏch Enter bn s thy 100 pt; 200 pt xut hin trong thuc tớnh ny. Chỳ
ý mc nh n v s l Points. Chỳ ý 72 pt tng ng 1=25.4mm. Nu bn
khụng nhp giỏ tr vo thuc tớnh ny thỡ mc nhiờn mi ct s cú rng l 1.33.
Vớ d tụi cú 3 ct trong mt bng mun th hin. Tụi mun du i ct 2 thỡ tụi cú
th nhp 3 cm; 0; 5 cm.
_ListWidth: l rng ca danh sỏch. Thụng thng bn nờn chn giỏ tr ca
thuc tớnh ny l tng ca cỏc giỏ tr trong thuc tớnh ColumWidth. Tng t trờn
bn cng cú th a vo giỏ tr theo n v cm.
_Width: bn ng nhm ln thuc tớnh ny vi hai thuc tớnh trờn. õy l
thuc tớnh xỏc nh rng ca Combo Box (ch khụng phi danh sỏch th hin
hay cũn gi l dropdown list).
_ColumnHeads: True/False, th hin tiờu ct hay khụng. Trong vớ d ca

tụi, cỏc tiờu ct chớnh l hng nm ngay lin bờn trờn hng s 4. Tc l: Mó
khỏch hng, Tờn khỏch hng.
_Value: giỏ tr c chn. Chỳ ý giỏ tr ny l gớa tr bn ó thit lp thuc
tớnh BoundColumn.
_Text: giỏ tr bn nhp vo Combo Box.
Bn hóy th nhp vo cỏc giỏ tr khụng cú trong danhsachkh xem sao? Cú
bn s t cõu hi, tụi ch mun ly giỏ tr trong danhsachkh m thụi. a sao vn
nhp cỏc giỏ tr khỏc c vy? Mun vy chỳng ta s i thờm thuc tớnh k tip
ú l thuc tớnh Style.
_Style: kiu ca Combo Box. Hoc l kiu drop-down list hoc l kiu
combo box. Kiu drop-down list s khụng chp nhn a vo cỏc giỏ tr khụng cú
trong danh sỏch.
Trc v sau khi cỏc bn thay i thuc tớnh Style ny cỏc bn hóy th a
cỏc giỏ tr ngoi danh sỏch vo ụ A1 (m chỳng ta ó chn thuc tớnh
LinkedCell trờn cho Combo Box) v xem giỏ tr ca Combo Box mi khi chỳng
ta thay i giỏ tr ra sao?
_ListRow: s trong danh sỏch c th hin. Vớ d trong danhsachkh ca tụi
cú khong 100 danh sỏch. Tụi mun khi tụi Click vo Combo box thỡ s th hin
danh sỏch 20 khỏch hng. Tụi s thit lp thuc tớnh ny l 20.
Trờn õy tụi ch lit kờ cỏc thuc tớnh chớnh ca Combo Box. Bn cú th c
thờm trong phn Help.
Chỳng ta s tỡm hiu mt s cỏch nhm lm cho Combo Box ca chỳng ta linh
ng hn.
Taực giaỷ:

Phan Tửù Hửụựng
Tr- 25

×