Phát triển AutoCAD bằng ActiveX & VBA - Làm quen với VBA

Chương này sẽ giới thiệu về dự án AutoCAD VBA

và môi trường phát triển VBA (VBA IDE). Nhìn

chung các môi trường phát triển VBA đều tương tự

nhau, nhưng AutoCAD VBA IDE có một số đặc tính

riêng. Ngoài ra, AutoCAD cũng có một số lệnh dùng

để nạp, thực thi dự án, mở dự án trong VBA IDE.

Chương này sẽ giới thiệu chung về dự án VBA, lệnh

VBA và VBA IDE

pdf 18 trang dienloan 2640
Bạn đang xem tài liệu "Phát triển AutoCAD bằng ActiveX & VBA - Làm quen với VBA", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Phát triển AutoCAD bằng ActiveX & VBA - Làm quen với VBA

Phát triển AutoCAD bằng ActiveX & VBA - Làm quen với VBA
 Phát triển AutoCAD bằng ActiveX và VBA | 27 
LÀM QUEN VỚI VBA 
1
Trong chương này
ƒ Khái niệm về dự án VBA 
nhúng và độc lập 
ƒ Tổ chức Dự án bằng VBA 
Manager 
ƒ Xử lý Macro 
ƒ Hiệu chỉnh dự án bằng 
VBA IDE 
ƒ Bài tập mở đầu 
ƒ Thông tin thêm 
ƒ Nhắc lại các thuật ngữ về 
dựa án AutoCAD VBA 
ƒ Nhắc lại về lệnh AutoCAD 
VBA 
Chương này sẽ giới thiệu về dự án AutoCAD VBA 
và môi trường phát triển VBA (VBA IDE). Nhìn 
chung các môi trường phát triển VBA đều tương tự 
nhau, nhưng AutoCAD VBA IDE có một số đặc tính 
riêng. Ngoài ra, AutoCAD cũng có một số lệnh dùng 
để nạp, thực thi dự án, mở dự án trong VBA IDE. 
Chương này sẽ giới thiệu chung về dự án VBA, lệnh 
VBA và VBA IDE. 
 28 | Chương 1: Làm quen với VBA 
1. Khái niệm về dự án VBA nhúng và độc lập 
Một dự án AutoCAD VBA là một tập hợp các mô đun mã lệnh, các mô đun lớp và 
các Form1. Chúng làm việc cùng nhau để thực hiện một nhiệm vụ định trước. Dự án 
có thể được lưu trực tiếp bên trong bản vẽ AutoCAD hoặc lưu ở một tệp riêng. 
Dự án nhúng được lưu bên trong bản vẽ AutoCAD. Tất cả các dự án đều được tự 
động tải lên mỗi khi bản vẽ đó được mở trong AutoCAD. Điều này giúp ta phân 
phối chương trình rất thuận tiện. Các dự án nhúng thường bị giới hạn và không thể 
mở hoặc đóng bản vẽ AutoCAD vì chúng chỉ hoạt động bên trong bản vẽ có chứa 
nó. Người sử dụng các dự án nhúng không cần phải tìm và nạp các tệp dự án trước 
khi muốn chạy chương trình. Chương trình ghi lại thời gian khi mở bản vẽ là một ví 
dụ về dự án nhúng trong một bản vẽ. Với Macro dạng này, người dùng có thể truy 
cập và ghi lại thời gian làm việc trên bản vẽ. Người dùng không cần phải nạp dự án 
mỗi khi mở bản vẽ, mọi thứ đều đã được thực hiện một cách tự động. 
Dự án đọc lập được lưu trong một tệp riêng và linh hoạt hơn rất nhiều bởi vì chúng 
có thể mở, đóng và làm việc trong bất cứ bản vẽ AutoCAD nào nhưng lại không tự 
động tải lên mỗi khi mở bản vẽ. Người sử dụng cần phải biết rõ tệp dự án nào chứa 
Macro mà họ cần và phải tải dự án đó trước khi có thể thực thi được Macro đó. Tuy 
nhiên, dự án độc lập có thể được chia sẻ dễ dàng hơn và có thể tạo thành những thư 
viện chứa những Macro thông dụng. Chẳng hạn như ta có thể tạo Macro và lưu 
trong một tệp riêng để thực hiện nhiệm vụ là thu thập nhu cầu vật tư trong từng bản 
vẽ. Macro này do người quản lý thực thi sau khi kết thúc công việc để thu thập 
thông tin từ rất nhiều bản vẽ khác nhau. 
Ở bất kỳ thời điểm nào, người dùng đều có thể tải dự án nhúng và dự án độc lập 
trong cùng một phiên làm việc vủa AutoCAD. 
Dự án AutoCAD VBA không hoàn toàn tương thích với dự án Visual Basic. Tuy 
nhiên, Form, các mô đun và các lớp vẫn có thể chuyển đổi với nhau bằng cách sử 
dụng lệnh IMPORT và EXPORT trong môi trường lập trình VBA. Để có thêm thông 
tin, xin xem thêm phần “Hiệu chỉnh dự án bằng VBA IDE” trang 34. 
2. Tổ chức Dự án bằng VBA Manager 
Ta có thể xem tất cả các dự án VBA đã được tải trong phiên làm việc hiện hành của 
AutoCAD bằng cách sử dụng VBA Manager. Đây là một công cụ của AutoCAD 
cho phép ta tiến hành tải vào, dỡ bỏ, lưu, tạo mới, nhúng và trích các dự án VBA. 
1 Form ở đây được hiểu là một cửa sổ được tạo ra trong giai đoạn lập trình để bố trí giao diện của 
chương trình lên trên nó. Khi thực thi chương trình thì Form chính là cửa sổ hoạt động của chương 
trình. Do trong tiếng Việt chưa có từ tương đương nên chúng tôi sử dụng từ gốc tiếng Anh. 
 Phát triển AutoCAD bằng ActiveX và VBA | 29 
Khởi động VBA Manager 
1 Từ trình đơn Tool, chọn Macro˜VBA Manager. 
2 Hoặc trong AutoCAD thực hiện lệnh VBAMAN. 
2.1. Tải một dự án đã có 
Khi tải một dự án vào trong AutoCAD, thì người dùng có thể sử dụng được ngay tất 
cả các thủ tục kiểu public, còn gọi là Macro. Những dự án nhúng được tải ngay khi 
mở bản vẽ. Còn những dự án lưu trong tệp DVB (dự án độc lập) phải được tải riêng. 
Tải tệp dự án VBA đã có 
1 Trong VBA Manager, sử dụng lựa chọn Load để hiện hộp thoại Open VBA 
Project. 
2 Trong hộp thoại OpenVBA Project, chọn tệp dựa án cần mở. Hộp thoại VBA 
Project sẽ cho phép ta chỉ mở tệp DVB. Nếu ta cố tình mở một kiểu tệp khác, 
chương trình sẽ báo lỗi. 
3 Chọn Open. 
Ta cũng có thể tải một tệp dự án bằng cách sử dụng lệnh VBALOAD – sẽ mở hộp 
thoại Open VBA Project. 
Ngoài ra, mỗi khi tải một dự án, tất cả những dự án được tham chiếu trong dự án 
đầu tiên cũng sẽ được tự động tải lên. 
AutoCAD cũng sẽ tự động tải lúc khởi động bất kỳ một dự án nào có tên là 
acad.dvb. 
 30 | Chương 1: Làm quen với VBA 
2.1.1. Cảnh báo Vi-rút 
Mỗi khi tải một dự án, AutoCAD thường có những lựa chọn cho phép kích hoạt 
hoặc không kích hoạt mã lệnh bên trong dự án nhằm bảo vệ tránh vi-rút. Nếu ta 
kích hoạt đoạn mã, vi-rút có trong đoạn mã sẽ bắt đầu thực thi. Nếu không kích hoạt 
đoạn mã, dự án sẽ vẫn được tải nhưng tất cả các đoạn mã trong dự án sẽ không 
được thực thi. 
Để có thêm thông tin về vấn đề chống vi-rút, xin xem thêm phần “Thiết lập các tùy 
chọn trong dự án” trang 33. 
2.2. Dỡ bỏ dự án 
Dỡ bỏ dự án sẽ giải phóng bộ nhớ và đảm bảo số lượng hợp lý các dự án đã được tải 
lên để dễ dàng quản lý. 
Ta không thể dỡ bỏ những dự án nhúng hoặc những dự án được tham chiếu bởi 
những dự án đang được tải trong AutoCAD. 
Để dỡ bỏ dự án VBA 
1 Trong VBA Manager, chọn dự án cần dỡ bỏ. 
2 Chọn Unload. 
3 Hoặc, sử dụng lệnh VBAUNLOAD. Lệnh này sẽ nhắc người dùng nhập vào tên 
dự án cần dỡ bỏ. 
2.3. Nhúng dự án vào bản vẽ 
Khi ta tiến hành nhúng một dự án vào bản vẽ, tức là ta đã sao chép dự án đó vào 
trong cơ sở dữ liệu của bản vẽ. Và kể từ đó, dự án sẽ được tải và dỡ bỏ mỗi khi mở 
và đóng bản vẽ. 
Tại một thời điểm, một bản vẽ chỉ có thể có một dự án nhúng. Nếu bản vẽ đã có 
một dự án nhúng, ta cần phải dỡ bỏ dự án đó ra trước khi tiến hành nhúng một dự 
án khác vào trong bản vẽ. 
Nhúng dự án vào bản vẽ AutoCAD 
1 Mở VBA Manager và chọn dự án cần nhúng. 
2 Chọn Embed. 
2.4. Tách dự án VBA ra khỏi bản vẽ 
Khi tách một dự án VBA, tức là ta đã tiến hành dỡ bỏ dự án đó ra khỏi cơ sở dữ liệu 
của bản vẽ và có thể lưu dự án đó vào một tệp khác. Nếu ta không lưu tệp trong một 
tệp dự án khác thì dự án đó sẽ bị xóa đi. 
Để tách một dự án VBA khỏi bản vẽ AutoCAD 
1 Mở VBA Manager và chọn bản vẽ có chứa dự án cần tách ra. 
2 Chọn Extract. 
3 Nếu muốn lưu dự án vào một tệp khác, chọn Yes khi được hỏi “Do you want to 
export the VBA project before removing it?” - “Bạn có muốn xuất dự án VBA 
 Phát triển AutoCAD bằng ActiveX và VBA | 31 
trước khi xóa đi không?”. Khi đó hộp thoại Save As sẽ xuất hiện để có thể lưu 
vào một tệp ngoài. 
Nếu không muốn lưu dự án vào tệp ngoài, ta chỉ cần chọn No. Dự án sẽ được 
xóa khỏi bản vẽ và sẽ không được lưu vào tệp ngoài. 
2.5. Tạo dự án mới 
Các dự án mới tạo đều là dự án độc lập và chưa được lưu. Khi đã tạo dự án, ta có 
thể nhúng dự án vào một bản vẽ hoặc lưu vào một tệp dự án ngoài. 
Để tạo dự án VBA mới 
1 Mở VBA Manager. 
2 Chọn New. 
Một dự án mới sẽ được tạo ra với tên mặc định là ACADProject. Để đổi tên dự án, 
cần phải vào VBA IDE, xin xem thêm phần “Đặt tên dự án” trang 38. 
2.6. Lưu dự án 
Dự án nhúng sẽ được lưu mỗi khi lưu bản vẽ. Dự án độc lập phải được lưu bằng 
VBA Manager hoặc VBA IDE. 
Để lưu dự án bằng VBA Manager 
1 Mở VBA Manager và chọn dự án cần lưu. 
2 Chọn Save As để mở hộp thoại Save As. 
3 Chọn tên tệp để lưu. 
4 Chọn Save. 
3. Xử lý Macro 
Hộp thoại Macro cho phép ta thực thi, hiệu chỉnh, xóa hoặc tạo Macro cũng như 
thiết lập các lựa chọn cho dự án VBA. 
Macro là một chương trình con kiểu public (có thể thực thi được). Mỗi dự án 
thường chứa ít nhất là một Macro. 
 32 | Chương 1: Làm quen với VBA 
Để mở hộp thoại Macro 
1 Từ menu Tools chọn Macro˜Macro. 
2 Hoặc, trong AutoCAD gõ lệnh VBARUN. 
Tên của tất cả Macro trong một phạm vi nào đó sẽ được hiển thị trong hộp thoại. Để 
thay đổi phạm vi này, ta chọn một mục trong danh sách trong mục Macros in. Danh 
sách này xác định dự án hoặc bản vẽ mà có Macro đang được hiển thị. Ta có thể tùy 
chọn hiển thị Macro trong: 
ƒ Tất cả các bản vẽ và dự án 
ƒ Tất cả các bản vẽ 
ƒ Tất cả các dự án 
ƒ Một bản vẽ đang mở trong AutoCAD 
ƒ Một dự án đang được tải trong AutoCAD 
Bằng cách thay đổi các phạm vi này, ta có thể điều khiển được số lượng tên Macro 
có trong danh sách. Điều này sẽ thực sự hữu ích khi có rất nhiều Macro được tải lên 
trong các bản vẽ và dự án. 
3.1. Thực thi Macro 
Thực thi Macro nghĩa là thực hiện mã lệnh của Macro trong phiên làm việc hiện 
hành của AutoCAD. Bản vẽ hiện hành được xem là bản vẽ đang được mở và đang 
thực thi Macro trên đó. Tất cả các tham chiếu đến đối tượng ThisDrawing sẽ tham 
chiếu đến bản vẽ hiện hành đối với các Macro trong dự án độc lập. Còn đối với các 
Macro trong dự án nhúng, đối tượng ThisDrawing luôn là bản vẽ có chứa Macro 
đó. 
Để thực thi Macro 
1 Mở hộp thoại Macros và chọn Macro sẽ thực thi. 
2 Chọn Run. 
3.2. Hiệu chỉnh Macro 
Quá trình hiệu chỉnh Macro diễn ra trong VBA IDE, trong cửa sổ Code. Xin xem 
thêm ở mục “Hiệu chỉnh dự án bằng VBA IDE” trang 34. 
Để hiệu chỉnh Macro 
1 Mở hộp thoại Macro và chọn Macro cần hiệu chỉnh. 
2 Chọn Edit. 
3.3. Truy cập vào Macro 
Quá trình truy cập vào Macro sẽ bắt đầu thực thi Macro và sau đó dừng quá trình 
thực thi lại ở dòng mã lệnh đầu tiên. VBA IDE sẽ được mở ra với cửa sổ mã lệnh 
tương ứng của Macro đó. 
Để truy cập vào Macro 
 Phát triển AutoCAD bằng ActiveX và VBA | 33 
1 Trong hộp thoại Macros, chọn Macro cần truy cập. 
2 Chọn Step. 
3.4. Tạo mới Macro 
Ta có thể tạo mới một Macro rỗng. 
Để tạo Macro mới 
1 Mở hộp thoại Macros và nhập vào tên của Macro mới cần tạo. 
2 Trong danh sách thả xuống của mục Macros in, chọn dự án, nơi mà ta muốn tạo 
Macro. 
3 Chọn Create. 
Nếu tên đó đã có, chương trình sẽ hỏi xem có muốn thay thế Macro đã có hay 
không. 
Nếu ta chọn Yes, mã lệnh trong Macro đã có sẽ bị xóa và thay vào đó sẽ là một 
Macro rỗng mới. 
Nếu ta chọn No, chương trình sẽ quay trở lại hộp thoại Macros để nhập vào tên 
Macro mới. 
Nếu ta chọn Cancel, chương trình sẽ đóng hộp thoại Macros và sẽ không tạo Macro 
nào cả. 
3.5. Xóa Macro 
Ta có thể xóa Macro của bất kỳ một dự án nào. 
Để xóa macro 
1 Mở hộp thoại Macros và chọn Macro cần xóa. 
2 Chọn Delete. Chương trình sẽ nhắc xác nhận lại quá trình xóa Macro. 
3 Chọn Yes để xóa Macro, No để hủy quá trình xóa. 
3.6. Thiết lập các tùy chọn trong dự án 
Có thể thiết lập 3 tùy chọn cho các dựa án AutoCAD VBA: 
ƒ Cho phép tự động nhúng (Enabling auto embedding) 
ƒ Cho phép ngắt khi có lỗi (Allowing break on errors) 
ƒ Kích hoạt bảo vệ tránh vi-rút (Enabling macro virus protection) 
Để thiết lập các tùy chọn trong dự án AutoCAD VBA 
1 Từ trình đơn Tools chọn Macro˜Macros để mở hộp thoại VBA Macros. 
2 Trong hộp thoại VBA Macros, chọn Options để mở hộp thoại Options. 
3 Trong hộp thoại Options, chọn tùy chọn cần kích hoạt. 
4 Chọn OK. 
 34 | Chương 1: Làm quen với VBA 
3.6.1. Cho phép tự động nhúng 
Tính năng tự động nhúng sẽ tự động tạo dự án VBA nhúng cho tất cả các bản vẽ khi 
mở bản vẽ 
3.6.2. Cho phép ngắt khi có lỗi 
Cho phép VBA chuyển sang chế độ Break khi có lỗi. Chế độ Break sẽ tạm thời 
“treo” chương trình đang thực thi để chuyển sang môi trường phát triển ứng dụng. 
Ở chế độ này, ta có thể kiểm tra, gỡ lỗi, khởi động lại, gỡ lỗi từng bước hoặc tiếp 
tục thực thi chương trình. 
Khi chọn tùy chọn này, những lỗi chưa được xử lý khi xuất hiện trong quá trình 
thực thi Macro sẽ dừng Macro lại và hiển thị VBA IDE tại nơi phát sinh lỗi trong 
Macro. 
Khi không chọn tùy chọn này, những lỗi không bẫy được trong quá trình thực thi sẽ 
làm hiển thị hộp thông báo về lỗi đó và kết thúc quá trình thực thi Macro. 
3.6.3. Kích hoạt bảo vệ tránh vi-rút 
Cơ chế bảo vệ tránh vi-rút sẽ hiển thị thông báo đã được tích hợp sẵn mỗi khi mở 
bản vẽ mà có khả năng chứa vi-rút Macro. 
4. Hiệu chỉnh dự án bằng VBA IDE 
Sau khi dự án đã được tải trong AutoCAD, ta có thể hiệu chỉnh mã nguồn, Form, và 
các tham chiếu trong dự án sử dụng môi trường phát triển ứng dụng tương tác của 
VBA. 
4.1. Mở VBA IDE 
Sau khi mở VBA IDE, ta có thể truy xuất đến tất cả các dự án đã được tải lên. 
Để mở VBA IDE 
Ta có thể mở VBA IDE từ dòng lệnh hoặc từ thanh trình đơn 
ƒ Từ dòng lệnh, ta nhập VBAIDE. 
ƒ Hoặc, từ trình đơn Tools, chọn Macro˜Visual Basic Editor. 
Để mở VBA IDE tự động khi khởi động AutoCAD 
Nếu muốn mở VBA IDE tự động mỗi khi khởi động AutoCAD cần phải thêm dòng 
sau vào tệp acad.rx: 
acadvba.arx 
4.2. Xem thông tin về dự án 
Trong VBA IDE có một cửa sổ gọi là cửa sổ Project sẽ hiển thị danh sách tất cả các 
dự án VBA đã được tải. Cửa sổ này cũng hiển thị mã lệnh, lớp và các mô đun, Form 
có trong dự án, các tài liệu liên quan đến dự án, tất cả các dự án khác được dự án 
này tham chiếu và các đường dẫn trong dự án. 
 Phát triển AutoCAD bằng ActiveX và VBA | 35 
Cửa sổ Project cũng có thanh công cụ riêng có thể sử dụng để mở các thành phần 
khác nhau của dự án. Sử dụng nút View Code để mở mã lệnh của mô đun đang 
được chọn. Sử dụng nút View Object để hiển thị các đối tượng được chọn, chẳng 
hạn như Form. 
Mặc định thì cửa sổ Project luôn được hiển thị, còn nếu không thì ta chọn trình đơn 
View˜Project window, hoặc nhấn CTRL+R. 
4.3. Định nghĩa các thành phần trong một dự án 
Mỗi dự án có thể có nhiều thành phần khác nhau. Các thành phần đó có thể là đối 
tượng (objects), Form, các mô đun chuẩn (standard modules), mô đun lớp (class 
modules) và các tham chiếu (references). 
4.3.1. Đối tượng 
Thành phần đối tượng thể hiện loại đối tượng, hoặc tài liệu mà mã lệnh VBA sẽ 
truy cập. Trong các dự án AutoCAD VBA, đối tượng này thể hiện cho bản vẽ 
AutoCAD hiện hành. 
4.3.2. Form 
Thành phần Form chứa tất cả các hộp thoại mà ta tạo ra trong dự án. 
4.3.3. Mô đun chuẩn 
Thành phần mô đun mã lệnh chứa tất cả các hàm và thủ tục. Mô đun chuẩn còn 
được gọi là mô đun mã lệnh hoặc đơn giản hơn chỉ cần gọi là mô đun. 
4.3.4. Mô đun lớp 
Thành phần mô đun lớp chứa tất cả các đối tượng mà ta tự tạo ra, và được định 
nghĩa là lớp. 
View Code 
View Object 
 36 | Chương 1: Làm quen với VBA 
4.3.5. Tham chiếu 
Thành phần Tham chiếu chứa tất cả các tham chiếu đến các dự án và các thư viện 
khác. 
4.3.6. Thêm Thành phần mới 
Thêm thành phần mới là tạo ra một thành phần rỗng trong dự án. Ta có thể thêm mô 
đun, Form, mô đun lớp mới vào dự án. Nhiệm vụ của chúng ta là sẽ phải cập nhật 
tất cả các thuộc tính của thành phần đó (chẳng hạn như tên của thành phần) hoặc 
thêm vào các đoạn mã lệnh thích hợp. Khi đặt tên các thành phần cần phải nhớ rằng 
có thể là trong tương lai chương trình sẽ được những người lập trình khác tham 
khảo, vì thế cần phải theo quy ước đặt tên của nhóm phát triển ứng dụng. 
Để thêm Thành phần mới vào dự án 
1 Trong cửa sổ Project của VBA IDE, chọn dự án cần thêm Thành phần. 
2 Từ trình đơn Insert, chọn UserForm, Module hoặc Class Module để thêm thành 
phần mới vào dự án. 
Thành phần mới được tạo ra sẽ được thêm vào dự án và sẽ xuất hiện trong cửa sổ 
Project. 
4.4. Nhập những thành phần đã có 
Tính năng này cho phép thêm một thành phần đã có vào trong dự án. Ta có thể nhập 
Form, mô đun hoặc mô đun lớp. Form được nhập thông qua tệp FRM, mô đun thì 
thông qua tệp BAS, còn mô đun lớp thì thông qua tệp CLS. 
Khi nhập một tệp có chứa Thành phần, một bản sao của tệp nhập vào sẽ được thêm 
vào trong dự án. Tệp nguồn sẽ được giữ nguyên. Những thay đổi với thành phần 
vừa nhập vào sẽ không làm thay đổi tệp nguồn. 
Nếu ta nhập một tệp chứa thành phần mà tên thành phần đã có, chương trình sẽ 
thêm một con số vào tên của tệp được nhập vào dự án. 
Để nhập một thành phần đã có vào dự án 
1 Trong cửa sổ Project trong VBA IDE, chọn dự án mà ta cần thêm thành phần. 
2 Từ trình đơn Tệp, chọn Import File để mở hộp thoại Import File. 
3 Trong hộp thoại Import File, chọn tệp cần nhập và nhấn Open. 
Thành phần vừa được nhập vào sẽ thêm vào dự án và sẽ xuất hiện trong cửa sổ 
Project. Để hiệu chỉnh thuộc tính của một thành phần, chọn thành phần đó trong cửa 
sổ Project. Thuộc tính của thành phần được chọn sẽ được liệt kê và có thể được hiệu 
chỉnh trong cửa sổ Properties. 
4.5. Hiệu chỉnh các thành phần 
Ta có thể hiệu chỉnh mô đun chuẩn, mô đun lớp và các Form trong VBA IDE. Mô 
đun chuẩn và mô đun lớp được hiệu chỉnh trong của sổ Code. Form thì được hiệu 
chỉnh trong cửa sổ UserForm sử dụng các công cụ đặc biệt khác. 
Để hiệu chỉnh một thành phần trong dự án 
 Phát triển AutoCAD bằng ActiveX và VBA | 37 
1 Trong cửa sổ Project của VBA IDE, chọn thành phần cần hiệu chỉnh. 
2 Chọn nút ViewCode trong cửa sổ Project để mở cửa sổ Code. 
3 Chọn nút ViewObject trong cửa sổ Project để mở cửa sổ UserForm và các thanh 
công cụ liên quan. 
Ta có thể mở tất cả các cửa sổ Code ứng với từng mô-đun có trong dự án để có thể 
dễ dàng xem các đoạn mã ở những mô-đun, Form khác nhau và sao chép, dán đoạn 
mã lệnh trong các cửa sổ Code. 
Để truy cập vào mã lệnh ứng với Form 
ƒ Bấm đúp chuột trên bất kỳ điều khiển nào trên cửa sổ Form. Mã lệnh tương 
ứng với điều khiển đó sẽ được mở lên trong cửa sổ Code. 
4.5.1. Sử dụng cửa sổ mã lệnh 
Cửa sổ mã lệnh có chứa 2 danh sách đổ xuống, một thanh chia, một thanh chỉ lề, 
biểu tượng xem toàn bộ và xem chương trình con. 
Thanh chia bên cạnh phải của cửa sổ Code cho phép tách cửa sổ theo đường ngang. 
Chỉ cần kéo thanh chia xuống để tạo một khung cửa sổ khác. Tính năng này cho 
phép xem đồng thời hai phần của đoạn mã lệnh trong cùng một mô đun. Để đóng 
khung cửa sổ này, chỉ cần kéo thanh chia trở về vị trí ban đầu. 
Thanh chỉ lề nằm bên trái của cửa sổ Code, được sử dụng để biểu thị phần lề sử 
dụng trong quá trình soạn thảo mã lệnh và quá trình gỡ lỗi. 
Biểu tượng xem toàn bộ và xem chương trình con nằm ở góc dưới bên trái của cửa 
sổ Code dùng để chuyển đổi giữa chế độ xem toàn bộ mã lệnh và chế độ chỉ xem 
mã lệnh của một chương trình con. 
Đối tượng 
hiện hành
Chương trình con 
hiện hành
Thanh chỉ lề 
Thanh chia
Xem chương 
trình con 
Xem toàn bộ
 38 | Chương 1: Làm quen với VBA 
4.5.2. Sử dụng cửa sổ UserForm 
Cửa sổ UserForm cho phép người dùng tạo các hộp thoại trong dự án của mình. 
Để thêm một điều khiển chỉ cần kéo điều khiển cần thêm trong thanh công cụ và thả 
vào trên Form. Ta có thể thiết lập canh hàng cho điều khiển trong thẻ General của 
hộp thoại Options, hoặc có thể chọn hiển thị lưới, xác định kích thước lưới hiển thị 
trên Form. (Xem thêm phần “Thiết lập các tùy chọn trong VBA IDE” trang 40 để 
biết thêm về hộp thoại Options.) 
Mỗi Form khi thiết kế đều có các nút bấm Maximize, Minimize và Close. Những 
nút này được cài đặt sẵn. 
Để thêm mã lệnh cho điều khiển, chỉ cần bấm đúp chuột lên điều khiển đã được đặt 
trên Form. Thao tác này sẽ hiển thị cửa sổ Code của điều khiển đó. 
4.6. Thực thi Macro 
Ngoài cách thực thi macro từ hộp thoại Macros, ta còn có thể thực thi Macro từ 
VBA IDE. 
Để thực thi Macro từ VBA IDE 
ƒ Từ trình đơn Run, chọn Run Macro. 
Nếu không có Macro hoặc Form hiện hành, một hộp thoại sẽ hiện lên cho phép 
chọn Macro để thực thi. 
Nếu có một Macro hiện hành (con trỏ đang nằm trong một chương trình con nào 
đó), Macro đó sẽ được thực thi. 
4.7. Đặt tên dự án 
Nên chọn tên dự án và tên của tệp .dvb, nơi lưu dự án, là khác nhau. Tên của tệp 
.dvb chỉ là tên tệp để lưu dự án, còn tên của dự án phải được thiết lập trong của sổ 
Properties trong VBA IDE. 
Nếu không thiết lập tên dự án và tên tệp, AutoCAD sẽ tự động gán tên mặc định 
sau: 
Tên dự án: ACADProject 
 Phát triển AutoCAD bằng ActiveX và VBA | 39 
Tên tệp: Project.dvb 
Để thay đổi tên dự án 
1 Trong cửa sổ Project của VBA IDE, chọn dự án cần đổi tên. 
2 Trong cửa sổ Properties, hiệu chỉnh thuộc tính Name của dự án. 
Để thay đổi tên tệp của dự án 
1 Trong VBA IDE, chọn Save từ trình đơn File 
2 Trong hộp thoại Save As, nhập vào tên và thư mục lưu tệp dự án. 
4.8. Lưu Dự án 
Không có lệnh SAVE trong AutoCAD dành riêng cho các dự án VBA. Thay vào đó, 
lệnh SAVE tích hợp trong trình đơn File của VBA IDE và trong VBA Manager. Bất 
kỳ thay đổi nào trong dựa án VBA sẽ phát sinh truy cập vào hộp thoại Save VBA 
Project khi xảy ra một trong những sự kiện sau: 
ƒ Chọn lệnh SAVE trong VBA IDE. 
ƒ Chọn Save As trong VBA Manager. 
ƒ Kết thúc phiên làm việc của AutoCAD mà vẫn chưa lưu dự án VBA. 
CHÚ Ý Trước khi lưu dự án, dự án đã được gán một tên mặc định là project.dvb. Ta cần 
phải thay đổi tên mới cho dự án khi tiến hành lưu dự án. Nếu ta lưu dự án với tên mặc 
đinh là project.dvb, ta sẽ không còn có khả năng tạo một dự án mới, trống được nữa. Khi 
đó, mỗi khi tạo một dự án mới, VBA sẽ tải dự án có tên tệp là project.dvb. 
4.9. Tham chiếu dự án VBA khác 
Tham chiếu một dự án VBA từ một dự án khác giúp lập trình viên chia sẻ mã lệnh 
dễ dàng hơn. Các lập trình viên có thể tạo thư viện các Macro thường được sử dụng 
nhất và tham chiếu đến thư viện đó mỗi khi cần. Điều này giúp tập trung hóa quá 
 40 | Chương 1: Làm quen với VBA 
trình quản lý mã lệnh, mà vẫn cho phép nhiều lập trình viên khác tận dụng được mã 
lệnh. 
Để tham chiếu dự án VBA khác 
1 Trong cửa sổ Project của VBA IDE, chọn dự án cần thêm tham chiếu. 
2 Từ trình đơn Tools, chọn Reference để mở hộp thoại References. 
3 Trong hộp thoại Reference, chọn nút Browse để mở hộp thoại Add Reference. 
4 Trong hộp thoại Add Reference, chọn nút OK để hoàn thành quá trình thêm 
tham chiếu. 
Sau khi đã thêm tham chiếu, ta sẽ thấy một thư mục mới trong cửa sổ Project của 
VBA IDE. Thư mục này chứa tất cả các tham chiếu và tên của các dự án được tham 
chiếu. 
Khi đã tham chiếu một dự án, ta có thể sử dụng tất cả các mã lệnh hoặc Form kiểu 
public trong dự án đó. 
Sau khi một dự án đã được tải lên, tất cả các dự án được tham chiếu trong dự án dó 
cũng được tự động tải lên. Những dự án được tham chiếu không thể đóng lại chừng 
nào dự án chính vẫn còn đang được mở. 
Ta không thể tạo tham chiếu vòng. Có nghĩa là không thể tạo tham chiếu đến một 
dự án mà lại có tham chiếu đến dự án ban đầu. Nếu ta vô tình tạo ra tham chiếu 
vòng, VBA sẽ thông báo cho ta biết. 
Tham chiếu dự án là một tính năng tiêu chuẩn của Microsoft VBA. Ta không cần 
phải làm gì thêm trong AutoCAD để kích hoạt tính năng này. Ta có thể tìm thêm 
thông tin về tham chiếu dự án trong các tài liệu trợ giúp về Microsoft Visual Basic. 
Ta cũng có thể truy cập vào tệp trợ giúp về Microsoft Visual Basic trong trình đơn 
Help của VBA IDE. 
CHÚ Ý Ta không thể tham chiếu các dự án nhúng hoặc các dự án VBA từ những chương 
trình ứng dụng khác. 
4.10. Thiết lập các tùy chọn trong VBA IDE 
Ta có thể thay đổi các đặc điểm của VBA IDE sử dụng hộp thoại Options. Để mở 
hộp thoại Options, ta chọn trình đơn Tools˜Options. 
Hộp thoại Options có 4 thẻ: Editor, Editor Format, General và Docking. 
4.10.1. Editor 
Thẻ Editor dùng để thiết lập cấu hình cho cửa sổ Code và Project. 
Cấu hình cho cửa sổ Code bao gồm: 
ƒ Auto Syntax Check – Tự động kiểm tra cú pháp 
ƒ Require Variable Declaration – Yêu cầu khai báo biến 
ƒ Auto List Member – Tự động hiển thị các thành phần 
ƒ Auto Quick Info – Tự động cung cấp thông tin nhanh 
 Phát triển AutoCAD bằng ActiveX và VBA | 41 
ƒ Auto Data Tips – Tự động hiện chú thích dữ liệu 
ƒ Auto Indent – Tự động thụt đầu dòng 
ƒ Tab Width – Khoảng cách Tab 
Cấu hình cho cửa sổ Window bao gồm: 
ƒ Drag and Drop Text Editing – Cho phép kéo thả khi soạn thảo 
ƒ Default to Full Module View – Mặc định chế độ xem toàn bộ 
ƒ Procedure Separator Display – Hiển thị phần phân cách giữa các chương 
trình con 
4.10.2. Editor Format 
Thẻ Editor Format xác định diện mạo của phần mã lệnh Visual Basic. 
Ta có thể: 
ƒ Thay đổi màu mã lệnh 
ƒ Thay đổi màu tiền cảnh 
ƒ Thay đổi màu hậu cảnh 
ƒ Thay đổi thanh chỉ lề 
ƒ Thay đổi màu và cỡ chữ 
ƒ Hiển thị hoặc ẩn thanh chỉ lề 
ƒ Hiển thị hoặc ẩn đoạn ký tự ví dụ tương ứng với các cấu hình 
4.10.3. General 
Thẻ General dùng để thiết lập các cấu hình, xử lý lỗi và cấu hình khi biên dịch cho 
dự án Visual Basic hiện hành. 
Ta có thể 
ƒ Thay đổi cấu hình lưới của Form 
ƒ Hiển thị hoặc ẩn chú giải thanh công cụ 
ƒ Thiết lập tự động che lấp cửa sổ 
ƒ Chọn nhận thông báo khi bị mất trạng thái – Xác định xem có nhận thông 
báo khi thao tác cần thực hiện sẽ làm tất cả các biến trong các mô đun bị 
thiết lập lại khi thực thi dự án 
ƒ Xác định cách thức xử lý lỗi 
ƒ Thiết lập xem dựa án sẽ được biên dịch khi có yêu cầu hoặc thực hiện quá 
trình biên dịch nền. 
4.10.4. Docking 
Thẻ Docking cho phép ta lựa chọn tính năng neo cửa sổ hay không. 
 42 | Chương 1: Làm quen với VBA 
5. Bài tập mở đầu 
Phần trước đã giới thiệu những khái niệm cơ bản nhất về lập trình trong AutoCAD 
VBA. Bây giờ ta sẽ thực hiện bài tập đầu tiên: tạo chương trình “Hello World”. 
Trong bài tập này, ta sẽ tạo một bản vẽ AutoCAD mới, thêm một dòng chữ vào bản 
vẽ, sau đó lưu bản vẽ, tất cả đều thực hiện từ VBA. 
Tạo đối tượng text “Hello World” 
1 Mở VBA IDE bằng cách nhập dòng sau vào dòng lệnh AutoCAD: 
Command: VBAIDE 
2 Mở cửa sổ Code bằng cách chọn lựa chọn Code từ trình đơn Menu của VBA 
IDE. 
3 Tạo mới một chương trình con trong dự án bằng cách chọn trình đơn 
Insert˜Procedure trong VBA IDE. 
4 Khi được nhắc nhập thông tin cho chương trình con, nhập vào tên chẳng hạn 
như HelloWorld. Cần phải chắc chắn rằng mục Type được chọn là Sub, và mục 
Scope được chọn là Public. 
5 Chọn OK. 
6 Nhập vào đoạn mã sau (để mở một bản vẽ mới) giữa hai dòng Public Sub 
HelloWorld() and End Sub. 
ThisDrawing.Application.Documents.Add 
7 Nhập vào đoạn mã sau (để tạo chuỗi và xác định điểm chèn) ngay phía sau đoạn 
mã đã nhập trong bước 6. 
Dim insPoint(0 To 2) As Double ’Khai báo điểm chèn của dòng chữ 
Dim textHeight As Double ’Khai báo chiều cao chữ 
Dim textStr As String 
Dim textObj As AcadText ’Khai báo đối tượng Text của AutoCAD 
insPoint(0) = 2 ’Thiết lập tọa độ cho điểm chèn 
insPoint(1) = 4 
insPoint(2) = 0 
textHeight = 1 ’Thiết lập chiều cao chữ bằng 1 
textStr = "Hello World!" ’Thiết lập nội dung dòng chữ 
‘Tạo đối tượng Text 
Set textObj = ThisDrawing.ModelSpace.AddText _ 
(textStr, insPoint, textHeight) 
8 Nhập đoạn mã (để lưu bản vẽ) ngay phía sau đoạn mã đã nhập ở bước 7. 
ThisDrawing.SaveAs("Hello.dwg") 
9 Thực thi chương trình bằng cách chọn trình đơn Run˜RunSub/UserForm trong 
VBA IDE. 
Sau khi chương trình đã thực thi xong, chương trình AutoCAD sẽ được hiện lên 
phía trên cùng. Ta có thể thấy dòng chữ “HelloWorld!” hiển thị trên bản vẽ và tên 
bản vẽ là Hello.dwg. 
6. Thông tin thêm 
Microsoft có cung cấp tệp trợ giúp về VBA IDE và ngôn ngữ lập trình Visual Basic. 
 Phát triển AutoCAD bằng ActiveX và VBA | 43 
Để truy cập các tệp trợ giúp của Microsoft về VBA IDE 
ƒ Từ trình đơn Help trong VBA IDE, chọn Microsoft Visual Basic Help. 
7. Nhắc lại các thuật ngữ về dự án AutoCAD VBA 
Dự án độc lập (Global Project) 
Là một dự án VBA được lưu trong tệp .dvb. 
Dự án nhúng (Embedded Project) 
Là một dự án VBA lưu kèm trong bản vẽ AutoCAD. 
Bản vẽ thông thường (Regular Document) 
Là bản vẽ AutoCAD không chứa dự án VBA nhúng. 
Bản vẽ thông minh (Smart Document) 
Là bản vẽ có chứa một hoặc nhiều dựa án VBA nhúng. 
Dự án hiện hành (Current Project) 
Là dự án hiện đang được chọn trong VBA IDE. 
ThisDrawing 
Là một thuật ngữ trong VBA thể hiện bản vẽ hiện hành. Đối với các dự án 
độc lập, ThisDrawing luôn tham chiếu đến bản vẽ đang được kích hoạt trong 
AutoCAD. Với các dự án nhúng, ThisDrawing tham chiếu đến bản vẽ có 
chứa dự án đó. 
VBA IDE 
Là môi trường phát triển ứng dụng tương tác. Chương trình này cho phép ta 
soạn thảo mã lệnh và Form trong dự án, hoặc sao chép sang các dự án khác. 
Nó còn cho phép tham chiếu đến các mô hình đối tượng trong các ứng dụng 
khác. 
VBA Manager 
VBA Manager cho phép ta quản lý các dự án. Ta có thể tạo, xóa, nhúng 
hoặc trích xuất các dự án. Ta có thể xem xem có dự án nhúng nào trong bản 
vẽ đang được mở hay không. 
Hộp thoại Macros (Macros Dialog Box) 
Hộp thoại Macros cho phép ta thực thi, xóa, tạo các Macro mới và có nhiều 
tùy chọn khác cho dự án VBA. 
8. Nhắc lại về lệnh AutoCAD VBA 
VBA IDE Khởi động VBA IDE. 
VBA IDE cho phép ta hiệu chỉnh, thực thi và gỡ rối chương trình. 
Mặc dù VBA IDE chỉ khởi động khi AutoCAD đang được thực thi, 
nhưng nó có thể được thu nhỏ, mở và đóng độc lập so với cửa sổ 
chương trình AutoCAD. 
 44 | Chương 1: Làm quen với VBA 
VBALOAD Tải dự án VBA vào phiên làm việc hiện hành của AutoCAD. 
VBARUN Thực thi Macro VBA từ hộp thoại Macros hoặc từ dùng lệnh 
AutoCAD. 
VBAUNLOAD Dỡ bỏ dự án VBA trong phiên làm việc hiện hành của AutoCAD. 
Nếu dự án VBA đã được chỉnh sửa và chưa lưu, hộp thoại Save 
Project hiện lên nhắc người dùng lưu dự án (hoặc hiển thị trên dòng 
lệnh). 
VBAMAN Hiển thị VBA Manager cho phép người dùng xem, tạo, tải, đóng, 
nhúng hoặc trích xuất các dự án. 
VBASTMT Thực thi dòng lệnh VBA từ dòng lệnh AutoCAD. 

File đính kèm:

  • pdfphat_trien_autocad_bang_activex_vba_lam_quen_voi_vba.pdf