MACRO
EXCEL OBJECT
VBA BASIC
VBA FORM
BÀI TẬP
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Tìm hiểu Sub trong VBA: Cú pháp và cách gọi Sub

Trong bài này mình sẽ giới thiệu về Sub trong VBA. Đây được xem là kiến thức nâng cao của các ngôn ngữ lập trình, nhưng vì trong VBA nội dung rất lộn xộn và có liên quan với nhau, vì vậy trong bài này mình sẽ giới thiệu sơ lược về Sub là gì và cách tạo Sub như thế nào.

Ở bài cách tạo Macro mình cũng có sử dụng Sub rồi nhưng không giải thích kỹ. Nếu bạn đã học qua ngôn ngữ Visual Basic rồi thì nó không quá khó, còn nếu bạn là người mới thì sẽ có chút bỡ ngỡ.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Sub trong VBA là gì?

Sub là tập hợp một hoặc nhiều đoạn code dùng để xử lý một nhiệm vụ hoặc tính năng nào đó. Sau khi tạo Sub thì ta có thể gọi đến để sử dụng rất nhiều lần mà không cần phải code lại.

Ví dụ: Bạn muốn viết đoạn code bôi đậm, in nghiêng và viết chữ hoa vào ô A1 thì code VBA có dạng như sau.

Range("A1").Font.Bold = True
Range("A1").Font.Italic = True
Range("A1").Value = UCase(ActiveCell.Value)

Mình muốn sử dụng đoạn code này trong 100 vị trí khác của một chương trình VBA cực lớn thì sẽ viết lại 100 lần, điều này gây ra khó khăn trong việc bảo trì sau này.

Thay vào đó ta sẽ gom đoạn code đó vào một Sub.

Sub BoldItalicUcaseText()
    Range("A1").Font.Bold = True
    Range("A1").Font.Italic = True
    Range("A1").Value = UCase(ActiveCell.Value)
End Sub

Và chỗ nào muốn sử dụng đoạn code này thì ta chỉ cần gọi như sau:

Call BoldItalicUcaseText()

Excel sẽ tự động gọi đến những đoạn code bên trong sub BoldItalicUcaseText nên việc chỉnh sửa và mở rộng sau này rất dễ dàng.

2. Cú pháp của Sub trong VBA

Để tạo một sub thì bạn sử dụng cú pháp sau:

Sub sub_name()
    ' Statement
End Sub

Trong đó:

  • sub_name là tên của sub mà bạn muốn đặt. Bạn không được sử dụng ký tự đặt biệt để đặt tên nhé.
  • statement là những đoạn code sẽ được chạy mỗi khi sub được gọi.

Ví dụ: Viết một Sub in ra thông báo "học VBA tại freetuts.net".

Sub showMessage()
    MsgBox "Hoc VBA tai freetuts.net"
End Sub

3. Tham số truyền vào Sub trong VBA

Tham số truyền vào sub chính là dữ liệu mà bạn muốn truyền vào Sub để xử lý.

Quay lại ví dụ ở phần 2 mình đã xuất ra một thông báo, tuy nhiên đó là một chuỗi fix cứng, nên khi gọi đến sub đó 1000 lần cả 1000 lần đều in ra thông báo "Hoc VBA tai freetuts.net".

Bây giờ mình muốn gọi đến sub đó nhưng nội dung tin nhắn của mỗi lần gọi là khác nhau thì làm thế nào? Rất đơn giản, ta sẽ sử dụng cú pháp tạo Sub có tham số như sau:

Sub sub_name(Var1 As Type1, Var2 As Type2, ...)
    ' Statement
End Sub

Máu chốt chính là đoạn code Var1 As Type1, Var2 As Type2, ...

Đây là danh sách các tham số truyền vào Sub, bạn có thể truyền một hoặc nhiều tham số, nếu nhiều thì chúng được cách nhau bởi dấu phẩy.

  • Var1, Var2 là tên tham số
  • Type1, Type2 là kiểu dữ liệu của tham số

Sửa lại Sub ở phần 2 để thỏa yêu cầu bài toán như sau:

Sub showMessage(x As String)
    MsgBox x
End Sub

Lúc này mỗi khi gọi đến Sub thì bạn phải truyền tham số vào nhé.

Call showMessage ("Thông báo 1")
Call showMessage ("Thông báo 2")
Call showMessage ("Thông báo 3")
....

Ví dụ khác: Viết sub in ra kết quả tính tổng hai số.

Sub sum2Number(a As String, b As String)
    total = a + b
    MsgBox total
End Sub

Cách gọi Sub này:

Call sum2Number(1, 2)

Trong đó 1 và 2 là hai giá trị mình truyền vào sub.

Khi truyền dữ liệu vào Sub phải đúng với kiểu dữ liệu mà Sub đã khai báo nhé, nếu không sẽ bị trình biên dịch báo lỗi đấy.

Trên là những chia sẻ về cách sử dụng Sub trong VBA. Đây là bài khá quan trọng vì ở những bài sau mình sử dụng khá nhiều, và mình cũng không giải thich lại đâu nhé.

Cùng chuyên mục:

Cách chèn link ảnh vào Excel trên máy tính

Cách chèn link ảnh vào Excel trên máy tính

Ngoài ra, bài viết còn hướng dẫn cách chèn link ảnh trực tuyến hàng loạt…

Cách tách và gộp ô trong Excel

Cách tách và gộp ô trong Excel

Trong bảng tính Microsoft Excel, có thể sẽ có lúc các bạn cần tách ô…

Hàm MONTH() trong Excel

Hàm MONTH() trong Excel

Cách dùng hàm MONTH() trong Excel

Hàm YEAR () trong Excel

Hàm YEAR () trong Excel

Cách dùng hàm YEAR () trong Excel

Hàm HLOOKUP() trong Excel

Hàm HLOOKUP() trong Excel

Cách dùng hàm HLOOKUP() trong Excel

Hàm VLOOKUP() trong Excel

Hàm VLOOKUP() trong Excel

Cách dùng hàm VLOOKUP() trong Excel

Hàm LOOKUP() trong Excel

Hàm LOOKUP() trong Excel

Cách dùng hàm LOOKUP() trong Excel

Hàm ABS() trong Excel

Hàm ABS() trong Excel

Cách dùng hàm ABS() trong Excel

Hàm SUM() trong Excel

Hàm SUM() trong Excel

Cách dùng hàm SUM() trong Excel

Hàm SQRT() trong Excel

Hàm SQRT() trong Excel

Cách dùng hàm SQRT() trong Excel

Hàm MOD() trong Excel

Hàm MOD() trong Excel

Cách dùng hàm MOD() trong Excel

Hàm SUMIF() trong Excel

Hàm SUMIF() trong Excel

Cách dùng hàm SUMIF() trong Excel

Hàm SUBTOTAL() trong Excel

Hàm SUBTOTAL() trong Excel

Cách dùng hàm SUBTOTAL() trong Excel

Hàm ROUND() trong Excel

Hàm ROUND() trong Excel

Cách dùng hàm ROUND() trong Excel

Hàm SUMPRODUCT() trong Excel

Hàm SUMPRODUCT() trong Excel

Cách dùng hàm SUMPRODUCT() trong Excel

Hàm COUNT() trong Excel

Hàm COUNT() trong Excel

Cách dùng hàm COUNT() trong Excel

Hàm COUNTA() trong Excel

Hàm COUNTA() trong Excel

Cách dùng hàm COUNTA() trong Excel

Hàm COUNTBLANK() trong Excel

Hàm COUNTBLANK() trong Excel

Cách dùng hàm COUNTBLANK() trong Excel

Hàm MAX() trong Excel

Hàm MAX() trong Excel

Cách dùng hàm MAX() trong Excel

Hàm MIN() trong Excel

Hàm MIN() trong Excel

Cách dùng hàm MIN() trong Excel

Top