Các thành phần (Components) trong dự án của bạn

Liên hệ QC

Đào Việt Cường

Cu Tí sành điệu
Thành viên danh dự
Tham gia
11/6/06
Bài viết
527
Được thích
760
Giới tính
Nam
Nghề nghiệp
Kiểm toán nhà nước
CÁC VẤN ĐỀ CHÍNH SẼ ĐƯỢC THẢO LUẬN TRONG CHỦ ĐỀ NÀY
-----oOo----

Các kiến thức trong chủ để này bao gồm các kỹ năng cơ bản trong lập trình ngôn ngữ Visual Basic. Bạn có thể vận dụng nếu muốn nâng cao kỹ thuật phát triển ứng dụng của mình bằng Visual Basic 6.0. Nội dung chính được đề cập trong chủ đề này:

1. Hiểu về References và các object cơ bản trong một VBA Project
2. VBA Object Browser - Container chứa những gì bạn có!
3.Thảo luận - Góp ý
Trong mỗi phần, các bạn có thể đặt ra các nghi vấn, các khúc mắc hoặc có thể là câu đố, nhằm giúp vấn đề thảo luận nổi bật hơn. Các bạn không nên đặt các câu hỏi không liên quan đến chủ đề hoặc hướng chủ đề thảo luận sang vấn đề khác.
 
Lần chỉnh sửa cuối:
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?
 
Lần chỉnh sửa cuối:
Dear all,
--------
Cả hai vấn đề mà các bạn nêu đều lại "trật" chủ đề mất rồi!
1. Các kiến thức cơ bản về VBA - không chỉ for MSE- các bạn tìm hiểu tại giaiphapexcel thì đúng chỗ quá rồi, có chỗ nào thắc mắc thì post bài đặt vấn đề, nhưng nhớ là phải đúng chủ đề và có dấu đấy nhé!
2. Về bảo mật VBA Project mình đã từng nghe: "không có cách nào tối ưu cả". Ngay cả bạn có chuyển sang VB và biên dịch thành *.dll thì cũng có phần mềm đọc được source code trong đó => khó cái gì được coi là tuyệt đối.
Mục đích chính của mình trong vấn đề chuyển mã sang *.dll không phải là bảo mật mà là muốn đóng góp cho cho giaiphapexcel một giải pháp (hi vọng là thế) trong việc sử dụng lại các chương trình mà trước nay đã được xây dựng nhưng vẫn còn nằm giải giác, phân tán (như hàm đọc số, Convert Fonts...). Chuyên mục Lập trình với Excel sẽ rất có ích cho chúng ta làm điều này.
Mình sẽ nêu cách biên dịch *.dll trong một chủ đề khác, nó liên quan đến việc thêm và bớt các thành phần bên ngoài (kiểu như là Add-In vậy). Còn bây giờ, các bạn tiếp tục khám phá xem trong "cái tủ" mà mình đề cập có những gì!
Nói là "tủ" thì dường như vẫn hơi nhỏ, theo mình phải đặt lại tên cho nó là "Container", bởi nó chứa đựng quá nhiều thứ mà theo mình đến những người xây dựng ra nó cũng không thể nhớ hết được. Vậy thì làm sao chúng ta có thể truy cập và tìm hiểu nó được? Chắc chắn phải có một nguyên tắc mà nếu chúng ta nắm bắt được nguyên tắc đó, chúng ta đã có được chìa khoá để mở nó.
 
Lần chỉnh sửa cuối:
VBA Object Browser - Container chứa những gì bạn có!

Đối với những người làm việc với Excel một cách quá thành thạo như các bạn, không dưới một lần bạn đã từng Shift + F3 để khám phá Standard Funsctions. Cũng có quá nhiều thứ và chắc rằng có những "món đồ nghề" mà bạn chưa hề đụng tới. Nhưng phải công nhận rằng các Funstions đều được sắp xếp rất khoa học, "ngay ngắn" nên dễ tìm (Với phiên bản MSE11 bao gồm 8 "thùng chứa" cơ bản mà các bạn có thể tìm thấy trong hộp thoại Insert Functions)
Việc sắp xếp các object trong "container" đề cập ở bài trên cũng dựa trên cách sắp xếp tương tự như vậy.
Nào hãy bắt đầu thám hiểm các thành phần có trong dự án của bạn:
- Tại màn hình VBE ấn F2 hoặc click lên biểu tượng Object Browser trên thanh công cụ.
- Cái gì thế này, một màn hình hiện ra mà mình không hiểu gì cả...:;
- Các bạn nghiên cứu tiếp nha!:.
 
Lần chỉnh sửa cuối:
Những gì có trong Object Browser?

Vậy là các bạn đã biết làm thế nào để biết được dự án của bạn có những gì. Điều đó rất quan trọng trước khi triển khai dự án của bạn. Cũng giống như người thợ, chúng ta cần phải biết để xây dựng thành công một công trình và tuyệt đối an toàn, chúng ta cần những dụng cụ gì, sử dụng chúng ra sao. Bài viết này giúp các bạn phân loại từng món đồ nghề và nhận biết chúng.
Nhưng hãy khoan, trước khi mở cánh cửa, chúng ta hãy nhớ lại những gì đã thấy ở bài trước: References trong một VBA Project - đó là các thư viện bên ngoài được tích hợp vào dự án của bạn, trong đó có những thành phần cần thiết để xây dựng mà bạn không thể bỏ bớt đi. Bạn cũng đã hiểu các thành phần này được bổ sung như thế nào. Bây giờ thì được rồi, bạn hãy F2 để mở cửa:
EOW.jpg


Các bạn chú ý tới combox Project/Library, đối tượng hiện hành được chọn là VBA. Các bạn nhìn xuống bên dưới thanh trạng thái Status: một đường dẫn chỉ tới VBA - Visual Basic for Application nằm ở đâu - điều mà bạn đã biết đến trên hộp thoại Reference.
Vậy còn những biểu tượng loằng ngoằng bên dưới, các viên gạch màu xanh "biết bay" thì sao? Hẳn bạn rất muốn có câu trả lời?
Một cách thông minh tự tìm câu trả lời là bạn chọn từng biểu tượng rồi ấn F1 hoặc Right-Click vào biểu tượng đó rồi chọn mục Help.
Nhưng trước hết các bạn cần hiểu ý nghĩa của các biểu tượng và những viên gạch bay cái đã:
EOI.jpg


Các bạn sẽ có những thắc mắc về các biểu tượng này: dùng để làm gì, ý nghĩa của nó như thế nào...

Còn bây giờ, để các bạn khỏi bị lúng túng trong quá trình phân loại, các bạn cần có kiến thức về kiến trúc. Muốn mổ thịt một con vật, các bạn biết cấu tạo cơ thể, nhất là các khớp xương! Cũng như vậy, khi tìm hiều về VBA bạn phải hiểu về cấu trúc của nó. Hình dưới đây minh hoạ mô hình các đối tượng và Tập hợp trong thư viện Microsoft Excel.
EOM.gif


Một đối tượng được biểu thị bằng màu xanh, bắt đầu là là Application - tức Microsoft Excel. Màu vàng biểu thị một tập hợp các đối tượng(s). Bạn sẽ phải làm quen và hiểu về các "khớp xương" trong mô hình này. Đó là cách để bạn tham chiếu tới từng đối tượng khi viết mã lệnh.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom