Hiểu về References và các object cơ bản trong một VBA Project
Dear all,
--------
Chắc hẳn các bạn đã có lần đặt ra câu hỏi: khi làm việc với Visual Basic for Applications chúng ta đang làm việc với tập tin nào? Một câu hỏi đại loại như thế này:
lapthanhphan@yahoo.com đã viết:
VBA là file *.exe nào?
Khi ta nhấn Alt+F11 thì vào được VBA Editor, vậy VBA Editor là file *.exe nào, và trong Excel, FrontPage, Access... thì cũng là 1 file này phải không?
Cám ơn.
Một cách cụ thể hơn:
Vì sao chúng ta có được các tập hợp (collections), các lớp (Classes), đối tượng (Objects) và thuộc tính (Properties)... để ứng dụng VBA của bạn thực sự "có hồn"?
Hẳn các bạn đã hiểu vấn đề sẽ được thảo luận trong chủ để này. Các kiến thức này sẽ giúp bạn hiểu rõ hơn về cấu trúc VBA trong MSE. Bạn sẽ hiểu được dự án của bạn có những gì và tối thiểu cần có những thứ gì!
Trước hết hãy khởi động dự án của bạn: Alt+F1 và bắt đầu quan sát:
1. Hiểu về References trong một VBA Project.
Để hiểu về References các bạn vào menu Tools/Regerences, xuất hiện hộp thoại References. Hãy quan sát các mục đã được chọn, lưu ý rằng mỗi phiên bản MSO khác nhau thì các mục chọn này có thể khác nhau. Với phiên bản MSO11 các mục mặc định đã được chọn bao gồm:
- Visual Basic for Applications
- Microsoft Excel 11 Object Library
- OLE Automation
- Microsoft Office 11 Object Library
Để hiểu về hộp thoại này, xin trích nguyên văn giới thiệu của Microsoft (các bạn ấn vào nút Help tại hộp thoại này để xem chi tiết):
Allows you to select another application's objects that you want available in your code by setting a reference to that application's
object library
Bạn đã hiểu
References Dialog Box dùng để làm gì chưa? Một sinh động nhất
References Dialog Box giống như một
tủ đựng các hộp đồ nghề, trong đó mỗi một hộp đồ nghề là một
another application's object. Mỗi object này được lưu trữ trong một tập tin. Để biết được tập tin đó là gì, bạn chọn object đó và quan sát khung Frame bên dưới, mục Location. Bạn có thể tham khảo thêm phần trợ giúp để biết các object nào có thể được đưa vào trong "tủ" này:
Browse
Displays the
Add Reference dialog box so that you can search other directories for and add references to the Available Resources box for the following types:
- Type Libraries(*.olb, *.tlb, *.dll)
- Executable Files (*.exe, *.dll)
- ActiveX Controls (*.ocx)
- All Files (*.*)
Vậy là bạn đã hiểu những gì đang có trong VBA Project của bạn rồi nhé.
2. Hiểu về "another application's objects"
Theo logic trên khi làm việc với Visual Basic for Applications đương nhiên bạn phải có
Visual Basic for Applications Object. Cũng như vậy, khi làm việc với Microsoft Excel đương nhiên bạn phải cần tới
Microsoft Excel 11 Object Library. Hai thư viện này tối thiểu cần có khi bạn muốn triển khai bất cứ một VBA Project nào. (Không tin bạn cứ thử gỡ bỏ 2 đối tượng này mà xem!). Nói cách khác đó chính là thành phần cơ bản của VBA - là hạt nhân của mọi hoạt động diễn ra trong chương trình của bạn.
Vậy các thư viện này có ý nghĩa như thế nào đối với các dự án VBA? Bên trong nó gồm có những gì? Làm sao để thấy được các thành phần và cách sử dụng chúng?