Hệ thống các đối tượng trong Excel VBA

Trước khi đi học lập trình VBA hay bất cứ ngôn ngữ nào, một điều rất quan trọng chúng ta nên chú ý đến là hệ thống các đối tượng ở trong ngôn ngữ lập trình đó. Khi hiểu được hệ thống các đối tượng trong VBA, thì bạn sẽ có được hình dung rõ ràng hơn về cấu trúc của code, sẽ làm việc hiệu quả hơn với từng loại đối tượng.

Các thành phần đối tượng trong Excel VBA

Đối tượng Application

Các đối tượng trong Excel VBA có mối quan hệ cha-con. Ở bậc cao nhất, chúng ta có đối tượng Application, trong trường hợp bạn sử dụng VBA để tương tác với Excel, thì ngầm định đối tượng Application này là đối tượng Excel, và sẽ có những thành phần và phương thức tương ứng. Nếu các bạn sử dụng VBA bên trong môi trường phần mềm Microsoft Access, thì Application này sẽ là đối tượng Access. Trong bài viết này, chúng ta nói về các thành phần đối tượng và phương thức, thuộc tính trong Excel VBA.

he-thong-doi-tuong-trong-excel-vba

Application.Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1").value = 234

Ví dụ để có thể tham chiếu tới ô A1, sau đó ghi dữ liệu là số 234 vào ô A1 thì chúng ta có thể viết code như dòng trên, tuy nhiên, khi bạn hiểu được cách phân cấp các đối tượng trong Excel VBA, thì bạn có thể rút ngắn đoạn code VBA trên khá nhiều.

Đối tượng Workbooks

Đối tượng Workbooks là một tập hợp các Workbooks Excel đang được mở, là một thành phần con của đối tượng Application. Khi muốn tham chiếu tới Workbooks, thì bạn sử dụng cú pháp

Application.Workbooks("_tên_workbook_")

Thường thì chúng ta có thể bỏ Application, và chỉ tham chiếu tới Workbooks như sau là đủ:

Workbooks("_tên_workbook_")

Lý do cho việc này là, hiếm khi chúng ta sẽ sử dụng cùng nhiều hơn 1 Instances của Excel, và trong 1 Instance của Excel, thì chúng ta không được phép mở Workbook trùng tên.

Đối tượng Worksheets

Mỗi Workbook, lại có thể chứa nhiều đối tượng Worksheets, và bạn có thể tham chiếu tới một Worksheet có tên là “Sheet1” trong File Excel có tên là “Book1.xlsx” như sau:

Application.Workbooks("Book1.xlsx").Worksheets("Sheet1")

Tuy nhiên, như lý do đã giải thích ở phần trên, chúng ta có thể yên tâm bỏ Application trong dòng code trên đi. Nếu trong trường hợp, code VBA của bạn chỉ làm việc trong File Excel “Book1.xlsx”, thì chúng ta có thể yên tâm bỏ luôn phần Workbooks(“Book1.xlsx”) đi, bởi vì lúc này, trong cùng một Workbook, thì VBA sẽ biết phải tham chiếu tới Sheet nào:

Worksheets("Sheet1")

Nhưng nếu code VBA của bạn làm việc với nhiều Workbooks, có thể trong những Workbooks này, cũng có Sheet tên là “Sheet1”, thì lúc này, bạn cần tham chiếu tới Sheet1 có kèm theo tham chiếu tới Workbook để code VBA không bị lẫn lộn:

Workbooks("Book1.xlsx").Worksheets("Sheet1")

Đối tượng Range

Sau đối tượng Worksheets, chúng ta có thể tham chiếu tới đối tượng Range, cũng tương tự như kiến thức ở phần trước, nếu code VBA chỉ làm việc với nội dung trên 1 bảng tính duy nhất, thì bạn có thể tham chiếu tới Range rất ngắn gọn:

Range("A1")

Nhưng nếu code VBA của bạn sẽ làm việc với nhiều Sheets khác nhau trong cùng một Workbook, thì chắc chắn tham chiếu của chúng ta tới ô A1, cần phải cụ thể hơn:

Worksheets("Sheet1").Range("A1")

Tương tự như vậy khi bạn làm việc với nhiều Workbooks khác nhau, thì chúng ta cần viết đầy đủ “đường dẫn” tới đối tượng Range của chúng ta:

Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1")

Cách tra cứu các thành phần và phương thức với đối tượng trong Excel VBA

Các thành phần và phương thức, cũng như thuộc tính, hay hằng số của mỗi đối tượng rất nhiều, nhưng thật may mắn, ngay phía bên trong trình soạn thảo code VBA của chúng ta đã có chức năng để chúng ta có thể tra cứu được, để mở các cửa sổ này, khi đang ở bên trong trình soạn thảo code VBA, bạn hãy bấm nút F2 trên bàn phím (Nếu không được, hãy thử bấm FN + F2 )

tim-kiem-cac-doi-tuong-va-thanh-phan-trong-vba

Trong cửa sổ này, bạn có thể tìm kiếm các đối tượng trong Excel VBA và tra cứu các thông tin liên quan đến các thuộc tính, phương thức và những hằng số như hình trên.

Các đối tượng và thuộc tính của VBA trong Excel rất nhiều, vậy làm thế nào để bạn có thể tiết kiệm thời gian tra cứu và lập trình tự động hóa được ngay những công việc bạn vẫn mong muốn? Hãy đồng hành cùng Thanh trong các khóa học VBA nâng cao năng suất công việc:

Khóa học VBA cơ bản:

Tự động hóa Excel với lập trình VBA cho người mới bắt đầu

Toàn bộ các khóa học lập trình VBA:

Tham khảo toàn bộ các khóa học lập trình VBA


Tác giả: dtnguyen (Nguyễn Đức Thanh)

@ Học Excel Online | DTNguyen.business
· · ·

Khóa học mới xuất bản