You are on page 1of 35

Trường ĐH Sư phạm Kỹ Thuật TP.

HCM
Khoa Kinh Tế

TIN HỌC ỨNG DỤNG


Khối ngành kinh tế

Tìm hiểu VBA


GIẢNG VIÊN: Lê Ngọc Hiếu

TP.HCM, tháng 9 năm 2022


VBA trong Excel
1. VBA là gì?

• VBA là tên của một ngôn ngữ lập trình trong


excel. VBA là viết tắt của từ Visual Basics
Application.
• Hiểu một cách nôm na thì lập trình VBA trong excel là
việc ta viết ra các dòng / câu lệnh để thực hiện
những điều ta muốn làm trong excel. Giống như hàm
excel, thì trong VBA ta cũng có những sự kiện (event),
action, hàm, các toán tử… bằng cách kết hợp các yếu
tố trên, excel sẽ hiểu ta muốn làm gì.
1. Tại sao phải dùng VBA?
 Khi muốn thực hiện chức năng nào đó ta chỉ
cần gọi câu lệnh đã được xây dựng sẵn trong
VBA excel thì excel tự động thực hiện nó
trong thời gian nhanh hơn dùng tay rất
nhiều.
 Ngoài ra, trong VBA ta còn có thể vẽ các nút
lệnh, nhiều trường nhập dữ liệu giúp người
sử dụng ứng dụng dễ dàng thực hiện các thao
tác chuẩn.
1. VBA là gì?

Một số ứng dụng về VBA:


• Tự động hóa các báo cáo bằng VBA.
• Tự động lọc danh sách không trùng.
• Tự động thay đổi hình ảnh theo tên
được chọn trong 1 danh sách
• Gộp nhiều file vào 1 file.
1. VBA là gì?
• Tạo môi trường làm việc

Bấm vào nút “Visual Basic” trong Menu Developer


Hoặc đơn giản hơn bấm tổ hợp phím tắt “Alt +
F11”
VBA là gì?
VBA: Tạo môi trường làm
việc
Một cửa sổ mới hiện ra
Soạn thảo code trong cửa sổ
này
VBA: Biến
• Biến: là vùng nhớ để máy tính lưu trữ dữ liệu. Mỗi
biến có một tên.
• Cách đặt tên của biến:

o Phải nhỏ hơn 255 ký tự

o Không chứa khoảng trắng

o Không bắt đầu bằng ký tự số

o Không chứa các ký tự đặc biệt như &, %, #..


VBA: Biến
• V í dụ:
1. VBA: Biến
Khai báo nhiều biến trên cùng 1 dòng

Dim variableName as DataType


Dim: Từ khóa chỉ phạm vi sử dụng của biến.
Dim: biến sử dụng trong thủ tục con hoặc ở trong một module
Public: biến khai báo ở mức module. Có thể sử dụng trong tất
cả các module nằm trong workbook
Private: biến khai báo ở mức module. Chỉ sử dụng trong module
đó
VariableName: tên biến
DataType: kiểu dữ liệu
Phải khai báo biến trước khi sử dụng biến
VBA: Kiểu dữ liệu
• Dữ liệu kiểu số
VBA: Kiểu dữ liệu

Dữ liệu khác
VBA: VÀO RA DỮ LIỆU

• Nhận giá trị từ một ô bảng tính và một:


• Var_name = Range(“cell”).Value
• Var_name = Cells(rowIndex, colIndex).Value

• Đưa giá trị từ một biến ra một ô bảng tính:

• Range(“Cell”). Value=<Expression> Cells(x,

y). Value=<Expression>
VBA: Câu lệnh lựa chọn

• Kiểu 1
If <biểu_thức_điều_kiện> Then
Khối_lệnh
End If

• Kiểu 2
If <biểu_thức_điều_kiện> Then
Khối_lệnh_1
Else
Khối_lệnh_2
End If
VBA:Câu lệnh nhiều lựa chọn
• Lệnh lựa chọn Case sử dụng khi có nhiều giá trị có thể xảy ra
• Select Case <biểu_thức_kiểm_tra>
• Case điều_kiện_1
[khối_lệnh_1]
• …..
• Case điều_kiện_n
[khối_lệnh_n]
• Case Else
[khối_lệnh_else]
• End Select
VBA: Lặp với số lần xác định từ trước
• Cú pháp
For <biến_đếm>=<Bắt_Đầu> To <Kết_Thúc> [Step bước_nhảy>]
[Khối_lệnh]
Next <biến_đếm>

• Ví dụ
Dim a As Integer
For a=1 To 5
Cells(a, a).Value = a
Next a
VBA: lặp với số lần không
xác định từ trước
• thực hiện cho đến khi điều kiện thỏa mãn
Do Until <điều_kiện>
[Khối_lệnh]
Loop
• thực hiện khi điều kiện còn
thỏa mãn
Do While <điều_kiện> • Cứ thực hiện cho đến khi điều kiện thỏa
[Khối_lệnh] mãn
Loop Dim i As
Integer i = 1
Do Until i > 5
Cells(i, 1).Value = i + 10
i =i + 1
Loop
• Cứ thực hiện khi điều
kiện còn thỏa mãn
Dim i As
Integer i = 1
Do While i < 6
Function trong VBA
• Một Function trong VBA (chức năng do người
dùng tự định nghĩa) là một nhóm các mã tái sử
dụng, được gọi là bất cứ nơi nào trong chương
trình của bạn. Điều này giúp loại bỏ sự việc viết
mã giống nhau lặp đi lặp lại. Điều này cho phép
các lập trình viên phân chia một chương trình lớn
thành một số chức năng nhỏ và dễ quản lý.
• Ngoài các Function sẵn có, VBA cũng cho phép
người dùng tạo ra các Function của riêng bạn.
Function trong VBA
Cú pháp của Function trong VBA
• Không có định nghĩa kiểu trả về cụ thể:

• Định nghĩa kiểu trả về cụ thể:

Trong đó:
[parameter-list]: là danh sách tham số, có thể có không, một hoặc nhiều.
[data-type]: là kiểu giá trị trả về của function, có thể định nghĩa hoặc không.
Function trong VBA

Đặc điểm của Function trong VBA


• Một Function trong VBA có thể có giá trị trả
về hoặc không. Điều này là cần thiết nếu bạn
muốn Function trả về một giá trị.
• Ví dụ: bạn có thể truyền hai số vào trong một
Function và sau đó bạn mong muốn Function
đó trả về tích của hai số đã cho.
Function trong VBA
Ví dụ: viết một Function tính tích của hai số, với tham số thứ hai là tùy
chọn (có thể nhập hoặc không). Nếu tham số thứ hai không được
truyền vào thì Function này trả về tích của số thứ nhất với chính nó.
Ngược lại nếu tham số thứ hai được truyền vào thì Function này trả về
tích của số thứ nhất và thứ hai.
• Chỉ rõ kiểu giá trị trả về của function là Double:

• Hoặc không cần chỉ rõ kiểu giá trị trả về của function:
Function trong VBA
Gọi một Function trong VBA
Bạn có thể gọi lại function trong một Function khác hoặc trong
một Sub khác, hoặc trong một Cell của Worksheet.
Gọi một Function trong một Functon khác hoặc trong một Sub
khác
Function trong VBA
• Gọi một Function trong một Cell của Worksheet
Để gọi một Function, hãy gọi hàm bằng cách sử dụng tên hàm
như thể hiện trong ảnh chụp màn hình sau
Function trong VBA
• Kết quả
Thủ tục (Sub Procedure) trong VBA
• Sub trong VBA hay còn gọi là thủ tục trong VBA là
tương tự như function, tuy nhiên có một số khác
biệt.
• Các thủ tục (Sub) KHÔNG không có giá trị trả về trong
khi các function có thể hoặc không trả lại một giá trị.
• Các thủ tục Sub được gọi với từ khóa Call hoặc
không.
Thủ tục (Sub Procedure) trong VBA
• Cú pháp của Sub trong VBA

Trong đó:
• [parameter-list]: là danh sách tham số, có thể có không, một
hoặc nhiều.
Ví dụ:
Ví dụ sau hiển thị tích của hai số đã cho trong một hộp thoại thông
báo.
Thủ tục (Sub Procedure) trong VBA
Gọi một Sub trong VBA
• Bạn có thể gọi lại Sub trong một Functon khác hoặc trong
một Sub khác.
• Bạn có thể sử dụng hoặc không cần sử dụng từ
khóa Call để gọi Sub.
Gọi Sub trong một Sub khác

Gọi Sub trong một Function khác


Thủ tục (Sub Procedure) trong VBA
Gọi Sub trong Cell của Worksheet thông qua một function
• Bây giờ bạn sẽ chỉ có thể gọi Sub trong Cell của Worksheet thông
qua một function như thể hiện trong ảnh chụp màn hình sau đây:
Thủ tục (Sub Procedure) trong VBA
MACRO
-Macro Là tập hợp các lệnh và hàm được lưu
trữ trong một module của VBA nhằm thực
hiện một nhiệm vụ nào đó
MACRO
Macro và các công cụ VBA có thể tìm thấy trong
thẻ Developer.
Nếu thẻ developer bị ẩn. Bấm vào thẻ:
File > Options > Customize Ribbon > Main Tabs
> Developer.
MACRO
Tạo Macro: Trong thẻ Developer, click Macros để xem những bản ghi. Ta có
thể thao tác như sau:
MACRO
Chạy và sử dụng Macro:
MACRO
Kết quả sau khi chạy Macro:
MACRO
Lưu file Macro: File -> Save as.

You might also like