Khai báo hàm Private và Public trong VBA

Trong bài viết này, chúng ta sẽ khám phá khái niệm về hàm Private và hàm Public trong VBA (Visual Basic for Applications) và tìm hiểu ý nghĩa thực sự của chúng. Bạn sẽ hiểu cách sử dụng hai hàm này để quản lý phạm vi giá trị của biến và hàm thủ tục trong mã VBA của mình. Hãy cùng khám phá!

Ý Nghĩa Thực Sự Của Private và Public

Trong VBA, Private và Public đề cập đến cách bạn khai báo phương thức truy cập giá trị của biến và hàm thủ tục. Hãy tưởng tượng Private như một công ty tư nhân và Public như một công ty đại chúng.

Private: Phạm Vi Riêng Tư

Khi bạn sử dụng hàm Private Sub, bạn định rõ phạm vi cho phép của nó. Các hàm thủ tục trong một mô-đun không thể kích hoạt các hàm Private Sub thuộc mô-đun khác. Điều này tạo ra một phạm vi riêng tư, giống như thông tin tài chính của công ty tư nhân chỉ dành riêng cho một số người.

Để sử dụng biến số được khai báo là Private, bạn phải đặt biến đó bên ngoài hàm thủ tục. Điều này có lợi khi bạn muốn chuyển giá trị từ một hàm thủ tục này sang một hàm khác trong cùng một mô-đun.

Public: Phạm Vi Công Cộng

Hàm Public Sub cho phép các hàm khác trong các mô-đun khác kích hoạt nó. Đây là phạm vi mặc định cho tất cả các hàm, nhưng thường ta sử dụng từ khóa “Public” để làm cho mã dễ đọc hơn.

Biến số được khai báo là Public có thể truy xuất và sử dụng bởi bất kỳ hàm thủ tục nào trong các mô-đun khác. Điều này thích hợp khi bạn muốn chia sẻ giá trị biến giữa các hàm.

Sắp Xếp Private và Public Đồng Thời

Hãy xem xét ví dụ sau đây:

Mô-đun 1

vba
Dim x As Integer
Public y As Integer
Sub Start_Process()
x = 15
y = 12
Call Print_Values
End Sub

Private Sub Display_Message()
MsgBox “We ran all three subroutines!”
End Sub

Mô-đun 2

vba
Sub Print_Values()
Debug.Print x
Debug.Print y
Call Display_Message
End Sub

Trong ví dụ này, chúng ta có hai biến x và y, trong đó x là Private và y là Public. Khi chạy macro Start_Process, cả hai biến x và y được gán giá trị và sau đó chúng ta kích hoạt macro Print_Values. Lưu ý rằng Print_Values có thể chạy ngay cả khi nó không nằm trong cùng mô-đun với Start_Process, vì nó là Public Sub.

Khi chạy macro Print_Values, chúng ta in giá trị của x và y ra cửa sổ tạm thời (Debug.Print). Lưu ý rằng việc in trực tiếp giá trị của x sẽ không thành công vì x là biến Private và chỉ tồn tại trong Mô-đun 1. Tuy nhiên, việc in giá trị của y (biến Public) sẽ thành công, vì y có phạm vi công cộng và có thể truy xuất từ Mô-đun 2.

Kết Luận

Trong bài viết này, chúng ta đã tìm hiểu về các khái niệm quan trọng trong VBA: Private và Public. Hai hàm này giúp quản lý phạm vi giá trị của biến và hàm thủ tục trong mã VBA của bạn. Private tạo ra phạm vi riêng tư, trong khi Public cho phép truy cập từ các mô-đun khác. Bằng cách sử dụng chúng cùng nhau, bạn có thể quản lý mã VBA của mình hiệu quả hơn và tạo ra các ứng dụng mạnh mẽ trên Excel.

Câu Hỏi Thường Gặp (FAQs)

Tại sao lại cần sử dụng hàm Private và hàm Public trong VBA?

Hàm Private và hàm Public giúp quản lý phạm vi giá trị của biến và hàm thủ tục trong mã VBA. Private tạo ra phạm vi riêng tư, trong khi Public cho phép truy cập từ các mô-đun khác. Điều này giúp tăng tính an toàn và hiệu suất của mã VBA của bạn.

Khi nào nên sử dụng hàm Private và khi nào nên sử dụng hàm Public?

Sử dụng hàm Private khi bạn muốn giới hạn truy cập đến một biến hoặc hàm thủ tục chỉ trong cùng một mô-đun. Sử dụng hàm Public khi bạn muốn chia sẻ giá trị hoặc hàm thủ tục giữa các mô-đun khác nhau.

Có thể sử dụng các hàm Private và Public cùng một lúc trong cùng một mã VBA không?

Có, bạn có thể sử dụng các hàm Private và Public trong cùng một mã VBA. Sự kết hợp giữa chúng giúp bạn quản lý mã một cách linh hoạt và hiệu quả.

Làm thế nào để thay đổi một hàm từ Private thành Public hoặc ngược lại?

Để thay đổi một hàm từ Private thành Public hoặc ngược lại, bạn chỉ cần sửa từ khóa “Private” hoặc “Public” trong khai báo hàm thủ tục.

Tôi có cần hiểu về VBA để sử dụng các hàm Private và Public không?

Để sử dụng các hàm Private và Public trong VBA, bạn cần có kiến thức cơ bản về VBA và làm quen với cú pháp của nó. Tuy nhiên, bạn không cần trở thành một chuyên gia VBA để bắt đầu sử dụng chúng.

Leave a Comment