Tìm Hiểu Sub Trong VBA: Cú Pháp Và Cách Gọi Sub
Có thể bạn quan tâm
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 viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.Ở 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ỡ.
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.
Bài viết này được đăng tại [free tuts .net]
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 SubVà 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 SubTrong đó:
- 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 Sub3. 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 SubMá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 SubLú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 SubCá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é.
Từ khóa » Cú Pháp Trong Vba
-
HƯỚNG DẪN CÁCH VIẾT HÀM VBA TRONG EXCEL
-
Tìm Hiểu Về Lỗi Cú Pháp Trong VBA Excel Và Cách Khắc Phục
-
HƯỚNG DẪN ĐẦY ĐỦ CÂU LỆNH IF TRONG VBA - Học Excel Online
-
Quy định Về Cú Pháp Và Các Trợ Giúp Viết Mã Lệnh Trong VBA - YouTube
-
Vòng Lặp FOR Trong VBA Và Các Ví Dụ Cách Sử Dụng
-
Vòng Lặp For Trong VBA - VietTuts
-
Sub Trong VBA - VietTuts
-
(PDF) Sách Lập Trình Excel Bằng VBA | Hùng Tô
-
[Excel VBA Tip] Cách Sử Dụng Hàm IF Trong VBA Excel - .vn
-
Các Câu Lệnh VBA đơn Giản | Giải Pháp Excel
-
Excel VBA: Các Mệnh đề điều Khiển - Viblo
-
Cách Gọi Hàm Vba Trong Excel / TOP #10 Xem Nhiều Nhất & Mới ...
-
Các Hàm Chuyển đổi Kiểu - Microsoft Support
-
Bài 10 : Vòng Lặp -VBA Excel