Để người dùng có thể chọn được một đối tượng trong cửa sổ ứng dụng của AutoCAD, trước hết cần ẩn Form bằng cách gọi phương thức Hide.. Khi đối tượng đã được chọn thì hiển thị lại Fo[r]
(1)P
PHHÁÁTT TTRRIIỂỂNN ỨỨNNGG DDỤỤNNGG B
BẰẰNNGG VVBBAA
11 Trong chương này
Một số thuật ngữ VBA
Làm việc với Form VBA
Xử lý lỗi
Bảo mật mã nguồn chương trình VBA Thực thi Macro từ trình
đơn cơng cụ Tựđộng tải dự án VBA Tựđộng thực thi Macro Tựđộng mở VBA IDE
khi tải dự án Làm việc
bản vẽđược mở Phân phối ứng dụng
Nhiều cơng việc lập trình khơng đơn giản làm việc với mơ hình đối tượng AutoCAD ActiveX Chương đề cập tổng quan cách tạo hộp thoại, xử lý lỗi, điều khiển cửa sổ ứng dụng phân phối ứng dụng cho người khác
(2)1 Một số thuật ngữ VBA
Nội dung chương mở rộng kinh nghiệm với VBA Các khái niệm nêu giúp tìm hiểu làm việc với môi trường VBA
Project Dự án - tập hợp form mơ-đun nhóm lại thành tệp
Module nhóm thủ tục hàm thường có liên quan đến Macro hàm thủ tục dùng chung Macro thường thể
hiện dạng thành phần chạy Dự án
Dialogbox phương tiện để thể thông tin tập hợp thông tin ứng dụng hoạt động
Form đối tượng chứa điều khiển hộp thoại
2 Làm việc với Form VBA
Form khối cấu tạo bản, ta thiết kế các hộp thoại cho ứng dụng khác Qua Form tự tạo, ta cung cấp thơng tin cho người dùng, nhận thông tin từ người dùng người dùng điều khiển hoạt động ứng dụng
Form giống phông để vẽ, ban đầu chúng hồn tồn rỗng Để làm đầy phơng cần có bảng màu Trong trường hợp này, bảng màu hộp cơng cụ điều khiển (Toolbox) Người thiết kế hoạ sỹ, thực bố trí điều khiển lấy từ hộp cơng cụ vào Form với số lượng tuỳ ý Có thể điều chỉnh thuộc tính kích thước điều khiển Form vào lúc Sau thêm vào chức (viết mã lệnh) cho điều khiển để Form hoạt động
(3)Các UserForm, gọi Form tài liệu này, ln dạng Modal Có nghĩa xuất lúc ứng dụng chạy, người dùng phải đóng lại trước muốn thực thao tác khác ứng dụng Điều nói đến kỹ phần “Thiết kế chương trình với Modal Form” trang 280
2.1 Thiết kế chạy chương trình
Khi tạo Form lúc làm việc chế độ thiết kế, chế độ thực thao tác sau:
Thêm điều khiển vào Form Thay đổi thuộc tính Form
Thay đổi thuộc tính điều khiển Form Chèn mã lệnh cho môđun Form
Trong chế độ thiết kế tương tác người dùng, giao diện AutoCAD Form thiết kế
Khi chạy ứng dụng Form chế độ hoạt động Khi chế độ này, ta tạo thay đổi tới Form cách trực tiếp Tuy nhiên, Form hiển thị giao diện sử dụng AutoCAD, người dùng tương tác với Form phần thông thường ứng dụng
2.2 Tạo Form mới Dự án
Tạo Form Dự án
1 Mở cửa sổ Project VBA IDE chọn dự án muốn thêm Form
2 Từ menu Insert chọn UserForm Khi Form trống tạo thêm vào dự án
2.3 Thêm điều khiển vào Form
Rất dễ dàng để thêm điều khiển vào Form, cách chọn điều khiển hộp cơng cụ kéo vào Form Khi điều khiển đặt Form, thay đổi vị trí kích cỡ chép điều khiển tuỳ theo ý muốn người thiết kế
Bên cạnh cách nêu trên, cịn có cách khác để đặt điều khiển vào Form
Thay đổi kích cỡ điều khiển đặt vào Form
1 Chọn điều khiển mong muốn hộp công cụ
2 Trên Form, nhấn chuột trái, kéo chuột sau thả Điều khiển lựa chọn đặt Form có kích cỡ phụ thuộc vào phạm vi kéo chuột
Đặt nhiều điều khiển giống Form
(4)2 Trên Form, nháy chuột vị trí muốn đặt điều khiển Di chuyển chuột đến vị trí khác Form nháy chuột lần nữa, điều khiển xuất Có thể tạo nhiều điều khiển với cách làm tương tự
3 Khi thực xong thao tác, trở lại hộp công cụ nháy chuột vào điều khiển lần để bỏ lựa chọn
2.3.1.Thay đổi kích thước vị trí điều khiển
Để dịch chuyển điều khiển cần chọn vào điều khiển kéo tới vị trí Form Để thay đổi kích cỡ điều khiển trước hết phải chọn nó, đường bao điều khiển hiển thị Sau kéo đường bao kích cho phù hợp kích thước mong muốn (Form điều chỉnh kích thước theo cách tương tự)
Để di chuyển thay đổi kích cỡ nhiều điều khiển lúc lựa chọn điều khiển giữ phím SHIFT, sau thực di chuyển đổi kích thước chúng theo nhóm
2.3.2.Định dạng điều khiển
VBA cung cấp số chức điều chỉnh định dạng để giúp cho ta trình bày Form Những chức tìm thấy trình đơn Format VBA IDE Chúng cho phép chỉnh, tạo kích thước giống nhau, thay đổi khoảng cách cho nhiều điều khiển Form
Chú ý, để chọn nhiều điều khiển, giữ phím SHIFT chọn 2.3.3.Thay đổi thuộc tính điều khiển
Các thuộc tính điều chỉnh đặc điểm khác điều khiển ví dụ như: kích cỡ, hình dạng, màu sắc, nhãn giá trị mặc định Gán thuộc tính điều khiển thực thiết kế cách sử dụng cửa sổ Properties
Thay đổi thuộc tính điều khiển
1 Chọn điều khiển cần thay đổi thuộc tính Form
2 Mở cửa sổ Properties cách sử dụng phím F4 trường hợp cửa sổ chưa mở
3 Trong cửa sổ Properties, tìm thuộc tính muốn thay đổi chọn giá trị cho thuộc tính
4 Thay đổi giá trị cho thuộc tính
Ta thay đổi thuộc tính đối tượng chương trình hoạt động cách viết mã lệnh truy cập vào thuộc tính Tham khảo tài liệu Microsoft để tìm thêm thơng tin thay đổi thuộc tính điều khiển lúc chương trình hoạt động
2.3.4.Thêm mã lệnh cho điều khiển
(5)trên điều khiển, cửa sổ Code mở với hàm tạo sẵn cho điều khiển tương ứng với kiện mặc định điều khiển
Có thể viết mã lệnh cho kiện mặc định chọn kiện khác từ hộp danh sách kiện nằm góc bên phải cửa sổ Code
2.4 Hiển thị ẩn Form
Sau thiết kế Form điều khiển viết mã lệnh đầy đủ bước cuối hiển thị Form cho người dùng chạy chương trình Sự hiển thị Form thực phương thức Show Phương thức gọi từ mơđun ứng dụng
Hiển thị Form
Ví dụ hiển thị Form có tên “UserForm1”: Public Sub MyApplication()
UserForm1.Show End Sub
Thủ tục (và tiếp việc hiển thị Form) gọi Macro từ lệnh
VBARUN từ trình đơn AutoCAD
Lưu ý Form VBA chế độ Modal Điều có nghĩa người dùng khơng thể tương tác trực tiếp với AutoCAD (ví dụ chọn điểm hay đối tượng vẽ) Form hiển thị Để cho phép người dùng tương tác với vẽ AutoCAD cần sử dụng phương thức Hide VBA Phương thức ẩn Form cho phép người dùng truy cập cách hạn chế với AutoCAD Khi sử dụng phương thức Hide, Form nhớ máy tính, giữ ngun tất giá trị bị ẩn Phương thức gọi theo cách tương tự phương thức Show
Ẩn Form
UserForm1.Hide
2.5 Tải dỡ bỏ Form
Một số trường hợp cần tải Form vào nhớ lúc chạy ứng dụng khơng hiển thị Form Trường hợp gặp phải người lập trình muốn khống chế thời điểm tải Form tốt muốn truy cập Form khơng muốn người dùng nhìn thấy Form Để tải Form không Form, sử dụng phương thức Load VBA Phương thức Show sử dụng sau để người dùng nhìn thấy Form thời điểm thích hợp ứng dụng thực Cần nhớ rằng, người dùng tương tác với Form nhìn thấy Nếu phương thức Show gọi mà Form chưa tải vào tự động tải
(6)Phương thức Hide không thực việc dỡ bỏ Form Nếu ứng dụng kết thúc Form chưa dỡ bỏ tự động dỡ bỏ Dưới bảng so sánh phương thức Show, Hide, Load Unload VBA:
Các phương thức VBA Show, Hide, Load Unload
Phương thức Vai trò
Show Hiển thị Form Nếu Form chưa tải vào tự động tải Form vào
Hide Ẩn Form Form chưa dỡ bỏ khỏi nhớ
Load Form tải vào nhớ chưa hiển thị
Unload Dỡ bỏ Form khỏi nhớ Có thể thực việc phương thức Unload thực tựđộng ứng dụng kết thúc
2.6 Thiết kế chương trình với Modal Form
Tất hộp thoại VBA AutoCAD dạng Modal Điều có nghĩa người dùng cần trả lời yêu cầu hộp thoại trước tiếp tục thực phần khác ứng dụng Sẽ khơng có mã lệnh thực hộp thoại dạng Modal đóng phương thức Hide Unload Điều yêu cầu người phát triển ứng dụng cần suy nghĩ thận trọng thời điểm cách thức xếp trình tự hộp thoại
Ví dụ cần thiết kế hộp thoại yêu cầu người dùng chọn đối tượng vẽ AutoCAD Để người dùng chọn đối tượng cửa sổ ứng dụng AutoCAD, trước hết cần ẩn Form cách gọi phương thức Hide Khi đối tượng chọn hiển thị lại Form phương thức Show, tất liệu giữ nguyên trạng ứng dụng tiếp tục chạy
CHÚ Ý Mặc dù tất Form khác ứng dụng không phép hoạt động hộp thoại Modal hiển thị, ứng dụng khác phép hoạt động
3 Xử lý lỗi
Có ba loại lỗi khác gặp phải ứng dụng: lỗi biên dịch, lỗi thực thi lỗi logic
Lỗi biên dịch xảy xây dựng ứng dụng Những lỗi hầu hết lỗi cú pháp, vấn đề phạm vi biến, lỗi nhập liệu Trong VBA, kiểu lỗi thường phát môi trường phát triển Khi soạn dịng lệnh sai dịng đánh dấu thông báo lỗi xuất nhắc nhở lỗi Các lỗi biên dịch cần phải sửa trước ứng dụng hoạt động
(7)tại lỗi thực thi xảy Để xử lý lỗi loại cách hiệu cần dự đoán dạng vấn đề gặp phải để bẫy chúng viết mã lệnh xử lý tình Lỗi logic khó tìm sửa Hiện tượng lỗi logic thường nằm tình lỗi biên dịch lỗi thực thi không xảy kết ứng dụng tạo không Người lập trình coi loại lỗi mà dễ khó để tìm bẫy
Các thơng tin để tìm sửa ba loại lỗi nói tìm thấy tài liệu mơi trường lập trình Các lỗi AutoCAD thường lỗi thực thi nên chúng nói đến kỹ phần sau chương
CHÚ Ý Hầu hết ví dụ mẫu cấp tài liệu AutoCAD không sử dụng bẫy lỗi Điều nhằm mục đích làm cho ví dụđơn giản tập trung vào nội dung Tuy nhiên, ngơn ngữ lập trình khác, xử lý lỗi bẫy lỗi hợp lý điều cần thiết để tăng hiệu ứng dụng
Có cần phải bẫy lỗi thực thi khơng?
Hầu hết mơi trường lập trình phải cung cấp công cụ xử lý lỗi mặc định Với VB VBA, phản ứng lỗi mặc định xuất thông báo lỗi ngắt ứng dụng Trong xây dựng ứng dụng kiểu phản ứng phù hợp, không phép xuất người dùng Khi lập trình, người lập trình muốn bỏ qua cung cấp phản ứng lỗi riêng cho số lỗi; muốn ngăn xuất thông báo lỗi đơn giản điều khiển xuất thông báo lỗi người dùng Bên cạnh đó, người dùng khơng thể chấp nhận việc tự động ngắt ứng dụng
Nói chung, xử lý lỗi cần thiết cần nhập thông số đầu vào từ người dùng làm việc với nhập/xuất tệp Lưu ý rằng, tệp cần dùng sẵn sàng để xử lý, xuất yếu tố gây lỗi mà người lập trình chưa nghĩ đến
3.1 Bẫy lỗi thực thi
Trong VB VBA, lỗi thực thi bẫy cách sử dụng lệnh On Error Câu lệnh tạo bẫy cho hệ thống Mỗi có lỗi xảy ra, lệnh tự động chuyển hướng sang phần xử lý riêng biệt thiết kế cho lỗi Khi xử lý lỗi mặc định hệ thống bị bỏ qua
Lệnh On Error có dạng sau: On Error Resume Next
On Error GoTo Label On Error GoTo