Lớp VBA - Làm thế nào để tạo lớp & đối tượng tùy chỉnh trong VBA?

Mô-đun lớp VBA trong Excel

VBA Class cho phép chúng ta tạo hàm Object của riêng mình, trong đó chúng ta có thể thêm bất kỳ loại tính năng nào, chi tiết về dòng lệnh, loại hàm. Khi chúng ta tạo Class trong VBA, chúng hoạt động giống như một hàm đối tượng hoàn toàn độc lập nhưng tất cả chúng đều được kết nối với nhau.

Điều này giúp chúng tôi xây dựng các ứng dụng như đã có trong VBA và Excel. Ví dụ, bánh xe chu kỳ bàn đạp quay. Bàn đạp và Bánh xe đều là các bộ phận của Chu trình, nhưng cả hai đều hoạt động độc lập để cung cấp đầu ra là một chu trình chuyển động.

Làm thế nào để tạo lớp & đối tượng tùy chỉnh trong VBA?

Hãy xem xét một ví dụ về điện thoại di động của 3 công ty khác nhau, đó là Apple, Samsung và Nokia - xem xét điện thoại di động phổ biến và mới ra mắt của các công ty này, đó là iPhone X, Samsung S8 và Nokia 7+.

Chúng tôi sẽ so sánh một số tính năng quan trọng của các điện thoại di động này, chẳng hạn như Thương hiệu, Kiểu máy, Kích thước màn hình, Loại máy ảnh và Loại bộ sạc. Đây là những tính năng cơ bản quan trọng trên cơ sở đó. Chúng tôi chủ yếu so sánh bất kỳ điện thoại di động nào. Dưới đây, chúng tôi đã ánh xạ các thông số đã thảo luận ở trên trong một biểu đồ.

Trong cửa sổ VBA từ menu Chèn , chọn Mô-đun Lớp, như được hiển thị bên dưới.

Chúng ta sẽ nhận được cửa sổ mô-đun Lớp bắt đầu với Option Explicit, như hình dưới đây.

Option Explicit đảm bảo rằng các biến phải được khai báo trước khi chúng được sử dụng. Nếu chúng ta không khai báo bất kỳ biến nào và sử dụng nó, thì hệ thống sẽ báo lỗi. Bây giờ trong Class, hãy xác định tất cả các tham số đo lường của điện thoại di động đã thảo luận với Public . Điều này sẽ làm cho các tham số được xác định đó có thể sử dụng mọi lúc, mọi nơi mà không có bất kỳ giới hạn nào.

Mã:

Tùy chọn Rõ ràng 'Danh sách các thuộc tính Thương hiệu công cộng Như chuỗi Mô hình công khai dưới dạng chuỗi Màn hình công khaiKích thước như chuỗi Camera công khaiLoại dưới dạng chuỗi Bộ sạc công cộngLoại dưới dạng chuỗi

Bây giờ chúng ta sẽ thêm một quy trình hoạt động, tính năng và chức năng khác của điện thoại di động, chẳng hạn như khởi động điện thoại, Tắt nguồn điện thoại, phát nhạc, sạc pin, … với Danh mục con cho từng chức năng như hình bên dưới. Và thêm một hộp thông báo trong mỗi vòng lặp Danh mục con để chúng ta có thể xem những phương pháp nào hiện đang chạy.

Mã:

'Kỹ thuật Có thể xảy ra Sub MobileStarts () MsgBox "Di động đang bật" End Sub
Sub MobileOff () MsgBox "Mobile is Turn Off" End Sub
Sub PlayMusic () MsgBox "Hệ thống âm thanh hiện đang hoạt động" End Sub
Sub BatteryCharge () MsgBox "Bộ sạc hiện được cắm vào" End Sub

Điều này hoàn tất việc tạo Lớp. Trước khi chúng tôi tiến xa hơn, chúng tôi khuyên bạn nên thay đổi tên của Mô-đun lớp. Chọn bất kỳ tên nào theo yêu cầu của bạn vì chúng tôi thay đổi nó thành Điện thoại di động .

Bây giờ chúng ta sẽ viết một đoạn mã trong một mô-đun nơi chúng ta sẽ xem và so sánh các tính năng và chức năng của từng thương hiệu điện thoại di động. Đối với điều này, chúng ta cần thêm một Mô-đun bằng cách vào đó trong trình đơn Chèn như trình đơn hiển thị.

Chúng tôi sẽ nhận được một mô-đun mới được mở với việc bật Option Explicit trong này khi chúng tôi đang làm việc và tạo một lớp học. Bây giờ bắt đầu viết Subcategory theo tên của các chức năng đã thực hiện như hình dưới đây.

Chúng tôi cũng có thể thay đổi tên của Mô-đun như chúng tôi đã làm đối với Lớp. Điều này giúp chúng tôi giữ danh tính đồng liên quan của mã VBA đã tạo. Điều này có thể được thực hiện từ các cửa sổ thuộc tính, như được hiển thị bên dưới.

Chúng tôi đã xác định các tính năng, chức năng và phương pháp khác nhau của tất cả các điện thoại di động thương hiệu. Bây giờ, hãy xác định 3 biến trong bất kỳ tên nào (Tốt nhất là tên thương hiệu điện thoại di động) và gán nó cho Di động. Hãy bắt đầu với iPhone trước, như hình dưới đây.

Tương tự, làm tương tự cho các nhãn hiệu điện thoại di động còn lại, như hình dưới đây.

Bằng cách này, chúng tôi chỉ định Lớp đã tạo cho mỗi biến chiều của thương hiệu Di động. Bây giờ đối với mỗi thương hiệu, hãy thực hiện quy trình gán Class tương tự .

Bây giờ chúng ta cần gán tất cả các tính năng của Điện thoại di động và giá trị của nó. Đối với điều này, hãy sử dụng chức năng Đặt và gán nó cho Điện thoại di động mới, như hình dưới đây.

Bây giờ hãy mở vòng lặp With-End cho iPhone. Đây là nơi chúng tôi sẽ xác định từng thuộc tính của điện thoại di động.

Như chúng ta có thể thấy, chúng tôi đã gán tất cả các tính năng được xác định của thương hiệu iPhone từ Class với các giá trị cụ thể là Chuỗi.

Hãy làm điều tương tự đối với Samsung và cả thương hiệu Nokia.

Bây giờ chúng ta sẽ sử dụng DebugPrint để in thông tin trên cửa sổ ngay lập tức. Nó rất hữu ích khi chúng ta muốn xem một biến nhất định trong một dòng mã. Chúng tôi sẽ chọn các tính năng khác nhau cho từng thương hiệu Di động, như hình dưới đây.

Bây giờ chỉ định các hoạt động chức năng MobileStartsMobileOff , mà chúng tôi đã xác định trong Lớp cho từng thương hiệu di động trong cùng một mô-đun cùng với hộp Thông báo. Bạn có thể bỏ qua hộp tin nhắn ở đây.

Điều này hoàn thành việc gán Lớp cho Mô-đun. Bây giờ hãy biên dịch mã và chạy bằng phím F5. Chúng ta sẽ thấy thông điệp của từng thương hiệu di động, như hình dưới đây.

Bây giờ, nếu bạn muốn biết biến và hàm nào có loại giá trị nào trong đó, hãy mở cửa sổ Cục bộ từ tab chế độ xem, điều này sẽ giúp chúng tôi nhận được chi tiết khi biên dịch mã như được hiển thị bên dưới.

Đoạn mã dưới đây là để bạn tham khảo.

Mã:

Sub VBA_Class() Dim iPhone As Mobile Dim Samsung As Mobile Dim Nokia As Mobile Set iPhone = New Mobile With iPhone .Brand = "iPhone" .Model = "iPhone X" .ScreenSize = "6.5 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Regular" End With Set Samsung = New Mobile With Samsung .Brand = "Samsung" .Model = "Samsung S8" .ScreenSize = "5.8 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Power" End With Set Nokia = New Mobile With Nokia .Brand = "Nokia" .Model = "Nokia 7+" .ScreenSize = "6 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Power" End With Debug.Print "Phone Screen Size is: " & iPhone.ScreenSize Debug.Print "Camera of Samsung is: " & Samsung.CameraType Debug.Print "Charger Type is: " & Nokia.ChargerType iPhone.MobileStarts iPhone.MobileOff MsgBox iPhone.Model Samsung.MobileStarts Samsung.MobileOff MsgBox Samsung.Model Nokia.MobileStarts Nokia.MobileOff MsgBox Nokia.Model End Sub

Pros

  • We can build our own application with a lot of features.
  • Once Class is created, we can update any feature, anytime whenever we require.
  • If we update the code, then also it won’t cause any problem in other parts of the Class.
  • We can test the individual part of the application as per our needs.

Cons

  • Initially, it takes a lot of time to create a class in VBA.
  • People who are new to VBA will find the class very difficult to apply.

Things to Remember

  • As the code can be huge and big, so it’s better to compile the code step-by-step. By doing this, we would avoid the N number of errors, which will be difficult for us to debug and resolve.
  • We can ignore the use of Message Box if you are taking and testing the above-written code.
  • Để thử nghiệm, bạn có thể sử dụng các kỹ thuật hoặc chức năng ít hơn trong việc tạo Lớp. Điều này có thể được sửa đổi sau khi chúng tôi muốn thêm nhiều chức năng và kỹ thuật của sản phẩm.
  • Luôn xem xét các tính năng tương tự hoặc giống nhau khi chúng tôi hoàn thành Lớp và gán nó cho một Mô-đun. Điều này sẽ giúp chúng tôi so sánh các tính năng của các sản phẩm khác nhau.

thú vị bài viết...