Bạn đã biết rằng bạn có thể sử dụng các chương trình con trong macro của mình. VBA cũng cho phép bạn xác định các hàm có thể được sử dụng trong macro của bạn. Sự khác biệt giữa hàm và chương trình con là các hàm có thể trả về giá trị, trong khi chương trình con không thể. Hãy xem xét macro sau:

Sub Macro1()

TooMany = TestFunc     If TooMany Then MsgBox "Too many columns selected"

End Sub
Function TestFunc()

TestFunc = False     If Selection.Columns.Count > 10 Then        TestFunc = True     End If End Function

Macro (Macro1) gọi hàm TestFunc. Hàm này trả về giá trị Sai hoặc Đúng, tùy thuộc vào phép thử mà nó thực hiện. Macro1 sau đó hoạt động dựa trên giá trị được trả về. Chú ý rằng tên hàm có thể xuất hiện ở bên phải của một dấu bằng. Điều này làm cho các chức năng trở nên rất mạnh mẽ và là một phần quan trọng của bất kỳ chương trình nào. Trong hàm, kết quả được gán cho TestFunc, là tên của chính hàm; đây là giá trị được trả về bởi hàm.

Như với các chương trình con, bạn cũng có thể chuyển các tham số cho các hàm của mình.

Điều này được minh họa trong macro sau:

Sub Macro1()

A = 12.3456     MsgBox A & vbCrLf & RoundIt(A)

End Sub
Function RoundIt(X) As Integer     RoundIt = Int(X + 0.5)

End Function

Macro đơn giản này (Macro1) xác định một số, sau đó sử dụng hộp thông báo để hiển thị nó và kết quả của việc chuyển số đến hàm RoundIt. Đầu ra là 12.3456 và 12. Lưu ý rằng tham số nên được chuyển cho hàm trong dấu ngoặc đơn. Cũng lưu ý rằng hàm không sử dụng cùng một tên biến như nó đã được truyền. Điều này là do VBA gán lại giá trị của X (những gì hàm cần) để nó khớp với giá trị của A (những gì chương trình đang truyền cho hàm).

Điều quan trọng cần nhớ khi truyền tham số cho các hàm là chương trình của bạn phải truyền cùng một số tham số như hàm mong đợi và các tham số phải có kiểu phù hợp và theo thứ tự thích hợp.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (2259) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: