mở đầu: Tổng quan về ngôn ngữ VBA -*****- 1. Giới thiệu về VBA - Ngôn ngữ lập trình VBA ( Visual basic for Application ) một ngôn ngữ lập trình dựa trên nền tảng của Visual Basic, được Microsoft lựa chọn là công cụ tích hợp trong các sản phẩm của mình, ví dụ người sử dụng có thể sử dụng VBA trong Microsoft Word, Microsoft Excel, Microsoft Access, Microsoft Powerpoint, Microsoft Outlook, ngoài ra còn VBA trên Autocad. - Ngôn ngữ hỗ trợ sử dụng (nhưng không tạo ra), DLL ActiveX (COM), những phiên bản về sau tăng thêm sự hỗ trợ dành cho các module, cho phép sử dụng các công nghệ lập trình hướng đối tượng cơ bản. VBA là một chương trình hữu ích, trong những phiên bản gần đây, nó đã bao gồm những môi trường phát triển tổng hợp (IDE).
- Với VBA, các thao tác thực hiện một cách tự động theo ý muốn người sử dụng. - Cũng giống như mọi ngôn ngữ lập trình khác, ngôn ngữ VBA cũng có một số quy định về cách khái báo biến, cấu trúc các lệnh, cách khai báo thủ tục, hàm. - Các cú pháp tương đương Visual Basic 6.0 + Thêm 1 số cú pháp khác. - Không phân biệt hoa/thường 2.
Đặc điểm của VBA - 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 COM1, 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. - 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 + Mô hình đối tượng của ứng dụng nền và cách sử dụng chúng 3. Cấu trúc 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ìnhcon (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ấ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. 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à Microsoft Office, 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: * WORD, EXCEL, PowerPoint, Outlook, Access 2003: Tool/Macro/Security (Security Level: Chọn Medium hay Low) * WORD, EXCEL, PowerPoint, Outlook, Access 2007: Show Developer tab in Ribbon 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. 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. 4/Cửa sổ tra cứu đối tượng (Object Browser Window): hiển thị các lớp, phương thức, thuộc tính, sự kiện và hằng số có trong thư viện đối tượng và trong dự án mà người dùng vừa tạo. Ta có thể sử dụng cửa sổ này để tìm kiếm, tra cứu tất cả các đối tượng mà ta vừa tạo ra cũng như các đối tượng trong các chương trình khác. 5/ Cửa sổ đối tượng trực quan (Visual Object Window): khi người dùng tạo các đối tượng trực quan thì cửa sổ này sẽ cho phép người dùng thao tác trên các điều khiển một cách dễ dàng và thuận tiện.
6/Hộp công cụ chứa điều khiển (Tool Box): chứa các thanh công cụ giúp người dùng có thể chèn các điều khiển vào cửa sổ người dùng (UserForm). 7/Cửa sổ thuộc tính (Properties Window): cửa sổ này liệt kê tất cả các thuộc tính của đối tượng, qua đó người dùng có thể tham khảo và thay đổi các thuộc tính khi cần như màu chữ, tên đối tượng… Bài 1: Cơ bản về ngôn ngữ lập trình VBA -*****- 1. Những qui định về cú pháp Cú pháp được hiểu là một một tập hợp bao gồm các quy tắc, luật lệ về trật tự và hình thức viết của một câu lệnh hay một cấu trúc lệnh. Trong ngôn ngữ lập trình Visual Basic (VB), cũng như các ngôn ngữ lập trình khác, đều có những quy định về cú pháp cho việc viết mã lệnh và người lập trình cần phải tuân theo các quy tắc này để trình biên dịch có thể dịch mã lệnh mà không phát sinh lỗi.
Sau đây là các quy định cơ bản về cú pháp của VB: + Các câu lệnh phải là các dòng riêng biệt. Nếu có nhiều lệnh trên cùng một dòng thì giữa các lệnh ngăn cách nhau bằng dấu hai chấm ( : ). Nếu dòng lệnh quá dài, muốn ngắt lệnh thành hai dòng thì sử dựng dấu cách và dấu gạch dưới ( _ ). + Nếu muốn chèn thêm ghi chú, phải bắt đầu dòng chú thích bằng dấu nháy đơn ( ‘ ).
+ Qui ước khi đặt tên: phải bắt đầu bằng kí tự kiểu chữ cái thông thường; không chứa dấu chấm, dấu cách hay các ký tự đặc biệt khác; không quá 255 kí tự; không trùng với các từ khoá; các biến có cùng một phạm vi thì không được đặt tên trùng nhau. Các trợ giúp về cú pháp trong quá trình viết mã lệnh -Các quy tắc về cú pháp thường khó nhớ đối với những người mới học lập trình hay mới sử dụng ngôn ngữ lập trình mới, cho nên, để thuận tiện cho người lập trình, VBA IDE cung cấp tính năng tự động phát hiện lỗi cú pháp trong quá trình viết mã lệnh. Tuy nhiên việc kiểm tra tự động này có thể gây khó chịu cho những lập trình viên chuyên nghiệp, những người rất hiếm khi mắc lỗi cú pháp khi lập trình, cho nên chức năng này chỉ hoạt động khi được kích hoạt, bằng cách chọn trình đơn Tools \ Options \ Editor \ Code Settings. Bật /Tắt trợ giúp phát hiện lỗi cú pháp của VBA IDE -Ý nghĩa của hai tùy chọn này như sau: +Tự động kiểm tra lỗi cú pháp (Auto Systax Check): Tùy chọn này cho phép VBA IDE tự động phát hiện lỗi cú pháp ngay sau khi người dùng kết thúc dòng lệnh (xuống dòng mới), một hộp thoại (như hình dưới đây) sẽ thông báo vị trí gây lỗi cũng như nguyên nhân gây lỗi.
Nếu người dùng bỏ qua không sửa ngay thì dòng lệnh có lỗi sẽ được đánh dấu. VBA IDE tự động kiểm tra lỗi cú pháp và thông báo cho người dùng +Kiểm tra các biến (Require Variable Declaration): Trong VB, người dùng có thể sử dụng một biến mà không cần khai báo. Trong trường hợp này biến sẽ được khởi tạo và nhận một giá trị mặc định. Tuy nhiên, nếu lạm dụng điều này, rất có thể sẽ làm cho chương trình khó quản lý và dễ nhầm lẫn, vì thế VBA IDE cung cấp tùy chọn này để cho phép người dùng thiết lập tính năng kiểm soát quá trình khai báo biến.
Khi tùy chọn này được kích hoạt, tất cả các biến đều phải khai báo trước khi sử dụng và VBA IDE sẽ tự động thêm vào đầu của mỗi mô-đun dòng lệnh “Option Explicit”. VBA IDE tự động thông báo lỗi khi biến được sử dụng mà chưa khai báo 3. Tính năng gợi nhớ và tự hoàn thiện mã lệnh - Mã lệnh, thông thường là một tập hợp bao gồm các từ khóa, câu lệnh, tên biến hay toán tử được sắp xếp theo một trật tự nhất định.