18 C C H H Ư Ư Ơ Ơ N N G G I I I I : : T T Ổ Ổ N N G G Q Q U U A A N N V V Ề Ề V V B B A A 19 CHƯƠNG II: TỔNG QUAN VỀ VBA 1. Đặc điểm của VBA Từ các đặc điểm cơ bản đã được phân tích ở cuối chương 1 ta có thể thấy rằng VBA là một công cụ lập trình cho phép phát triển nhanh phần mềm và được tích hợp vào trong ứng dụng nền. Về thực chất, VBA được xây dựng dựa trên kiến trúc COM 1 , cho nên người dùng có thể sử dụng các thành phần sẵn có của ứng dụng nền trong việc xây dựng chương trình của mình với VBA. Một dự án được xây dựng bằng VBA dựa trên ứng dụng nền nào thì nó phụ thuộc chặt chẽ vào ứng dụng nền đó, bởi theo mặc định, dự án VBA sẽ hoạt động và sử dụng các thành phần trong chính ứng dụng nền đó. Điều này có ngh ĩa là ta rất khó có thể chuyển đổi một dự án VBA từ loại ứng dụng nền này sang một ứng dụng nền khác cũng như tạo ra một ứng dụng chạy độc lập. Sự khác biệt cơ bản nhất của VBA trong các ứng dụng nền (ví dụ giữa VBA trong AutoCAD và VBA trong Excel) là cách thức sử dụng các thành phần (đối tượng) của ứng dụng nền. Cho nên khi xây dựng ứng d ụng bằng VBA, việc đầu tiên là phải tìm hiểu mô hình đối tượng của ứng dụng nền và cách sử dụng chúng. Như trong chương trước đã trình bày, xây dựng một dự án VBA, một cách tổng quát, người dùng cần nắm vững hai phần: Ø Ø Ngôn ngữ lập trình Visual Basic và giao diện lập trình VBA IDE. Phần này sẽ bao gồm các nội dung kiến thức trong chương 2 và 3. Ø Ø Mô hình đối tượng của ứng dụng n ền và cách sử dụng chúng. Nội dung kiến thức của phần này sẽ được trình bày trong chương 4 và 5. 2. Trình tự xây dựng một dự án bằng VBA Về mặt trình tự thực hiện, việc xây dựng một dự án VBA bao gồm các bước sau: 1. Xác định rõ nhu cầu xây dựng chương trình. Nhu cầu này được xác định dựa trên hoạt động thực tế của người dùng và thường do chính người dùng đề xuất. Đây là bước xác định các chức năng của chương trình. 2. Xác định rõ mục tiêu mà chương trình cần đạt được. Bước này là phần cụ thể hóa củ a bước 1, ví dụ như bước 1 có nhu cầu hoàn thiện bản vẽ kết cấu BTCT, còn bước này sẽ cụ thể mức độ hoàn thiện (đến đâu và như thế nào). 3. Lựa chọn ứng dụng nền và công cụ lập trình phù hợp cho việc xây dựng chương trình. Ví dụ với nhu yêu cầu tính và tạo bản vẽ của cấu kiện BTCT, thì ứng dụng nền thích hợp là AutoCAD và công cụ lậ p trình có thể là AutoLISP, VBA, ObjectARX. Tùy theo mức độ phức tạp của bài toán mà ta lựa chọn công cụ lập trình phù hợp. Ở đây VBA đảm bảo sự thuận tiện trong việc xây dựng các mô-đun tính toán và tạo bản vẽ đối với những bài toán thông thường. 4. Thiết kế hệ thống cho chương trình (hay dự án): bao gồm việc lập sơ đồ khối, xác định các mô-đun của chương trình, thiết kế giao diệ n nhập xuất dữ liệu và kết quả, xây dựng hệ thống cơ sở dữ liệu sao cho thỏa mãn những đề xuất ở bước 1 và 2. 1 COM (Component Object Model): là một kiến trúc lập trình được thiết kế bởi Microsoft. Mục đích của công nghệ này là tạo ra một chuẩn công nghệ trong lập trình, mà ở đó cho phép xây dựng chương trình theo mô hình lắp ghép hay sử dụng lại các sản phẩm đã được hoàn thiện từ trước theo chuẩn COM. 20 5. Viết mã lệnh (lập trình): là việc sử dụng công cụ lập trình để tạo ra chương trình phù hợp với hệ thống đã được thiết kế ở bước 4. 6. Kiểm thử chương trình: là công đoạn hoàn thiện và chuẩn bị đưa chương trình vào sử dụng. Những công việc chính của bước này bao gồm: Ø Ø Kiểm tra xem các chức năng của chương trình đã th ỏa mãn các yêu cầu đề ra từ trước chưa bằng cách chạy thử tất cả các tính năng của chương trình dựa trên một kịch bản cụ thể. Ø Ø Kiểm tra hiệu năng của chương trình: xem thời gian thực hiện và quy trình sử dụng chương trình có hợp lý không. Ø Ø Kiểm tra khả năng chịu lỗi của chương trình, ví dụ như khi nhập số liệu sai. M ột chương trình đảm bảo khả năng chịu lỗi là nó sẽ không bị dừng lại đột ngột do lỗi thao tác của người dùng hay dữ liệu sai. 7. Đóng gói, đưa chương trình vào sử dụng: bao gồm việc xây dựng tài liệu hướng dẫn cài đặt và sử dụng chương trình nhằm mục đích giúp người dùng có thể triển khai chương trình vào thực tế. 8. Tiếp nhận các góp ý, phản h ồi của người dùng để bổ sung hay hoàn thiện những khiếm khuyết của chương trình mà trong quá trình thiết kế hệ thống hay kiểm thử đã bỏ qua hoặc chưa phát hiện được. 9. Nâng cấp chương trình: sau một thời gian sử dụng, dựa trên những phản hồi của người dùng, nếu thấy rằng chương trình cần bổ sung thêm những tính năng mới thì người phát triển phần m ềm sẽ thực hiện sự bổ sung này dựa trên những thành phần đã có từ trước. 3. Cấu trúc của một dự án VBA Khi nói đến các thành phần tạo nên một dự án VBA thì cấu trúc của nó, về tổng quát, như sau: Ø Ø Mô-đun chuẩn (Module): là nơi chứa các mã lệnh khai báo, các chương trình con (hàm và thủ tục). Việc tạo ra các mô-đun chuẩn thường căn cứ theo các khối chức năng mà người thiết kế hệ thống đặt ra. Ø Ø Mô-đun lớp (Class Module): là nơi chứa định nghĩa cho các lớp của dự án. Ø Ø Userform: là giao diện dạng hộp thoại giúp cho việc giao tiếp giữa người sử dụng và chương trình được thuận tiện. Thông thường người ta sử dụng Userform để nhập số liệu, xuất kết quả của chương trình. Trong một số dự án, nếu việc nhập số liệu và biểu diễn kết quả được thực hiện trực tiếp trên ứng dụng nền, thì có thể không cần sử dụng Userform. Những thành phần này là bộ khung để người dùng xây dựng chương trình của mình lên trên đó, ví dụ như viết mã lệnh hay thiết kế giao diện cho chương trình. Mô-đun lớp và UserForm là hai thành phần có thể xuất hiện hoặc không thùy thuộc vào từng dự án và tất cả những thành phần sử dụng trong dự án đều được hiển thị trên giao diện của VBA IDE. C C H H Ư Ư Ơ Ơ N N G G I I I I : : T T Ổ Ổ N N G G Q Q U U A A N N V V Ề Ề V V B B A A 21 Hình II-1: Cấu trúc của dự án thể hiện trên VBA IDE Tuy nhiên, khi xây dựng chương trình (viết mã lệnh) cụ thể thì khái niệm cấu trúc của một chương trình là sự bố trí, sắp xếp các câu lệnh trong chương trình đó. Như vậy khái niệm cấu trúc này phụ thuộc vào từng loại ngôn ngữ lập trình. Đối với ngôn ngữ lập trình Visual Basic (VB), cấu trúc của nó chỉ tập trung vào chương trình con (hàm và thủ tục) chứ không có một quy định về cấu trúc nào đối với chương trình chính. Chi tiết c ủa cấu trúc của chương trình con sẽ được đề cập đến trong các phần sau. 4. Môi trường phát triển tích hợp VBA IDE Trong mỗi công cụ lập trình trên ứng dụng nền, luôn có một môi trường lập trình nhằm hỗ trợ người dùng có thể xây dựng, thử nghiệm và hoàn thiện chương trình của mình. Trong AutoCAD và Excel, khi sử dụng VBA để lập trình, môi trường lập trình được gọi là Môi trường phát triển tích hợp (viết tắt là VBA IDE). Trên tất cả các ứng dụng nền, VBA IDE có cấu trúc và hoạt động tương đương nhau với giao diện cơ bản và cách g ọi giao diện VBA IDE từ ứng dụng nền như sau: Ø Ø Phím tắt: từ giao diện chính của ứng dụng nền, nhấn tổ hợp phím Alt+F11. Ø Ø Menu: Tools Ö Macro Ö Visual Basic Editor. 22 Hình II-2: Giao diện chính của VBA IDE 1. Thanh trình đơn (Menu bar): chứa tất cả các lựa chọn cần thiết để thao tác với VBA IDE 2. Cửa sổ dự án (Project Explorer Window): liệt kê dưới dạng cây phân cấp các dự án hiện đang được mở trong VBA IDE và các thành phần có trong từng dự án như các tài liệu thành phần, các mô-đun chứa chương trình con, các mô-đun lớp, các cửa sổ do người dùng tạo. GỢI Ý Việc thêm các thành phần mới vào trong một dự án được thực hiện trong menu Insert của VBA IDE. Ví dụ muốn thêm một mô-đun chuẩn vào trong dự án, chọn Insert Ö Module 3. Cửa sổ mã lệnh (Code Window): mỗi thành phần được liệt kê trong cửa sổ dự án đều có một cửa sổ mã lệnh riêng, chứa mã lệnh cho thành phần đó. Người dùng có thể hiệu chỉnh mã lệnh, tạo ra mã lệnh mới trong cửa sổ mã lệnh. . (lập trình) : là việc sử dụng công cụ lập trình để tạo ra chương trình phù hợp với hệ thống đã được thiết kế ở bước 4. 6. Kiểm thử chương trình: là công đoạn hoàn thiện và chuẩn bị đưa chương trình. chúng. Nội dung kiến thức của phần này sẽ được trình bày trong chương 4 và 5. 2. Trình tự xây dựng một dự án bằng VBA Về mặt trình tự thực hiện, việc xây dựng một dự án VBA bao gồm các bước sau:. chương trước đã trình bày, xây dựng một dự án VBA, một cách tổng quát, người dùng cần nắm vững hai phần: Ø Ø Ngôn ngữ lập trình Visual Basic và giao diện lập trình VBA IDE. Phần này sẽ bao