1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình hướng dẫn những quy luật cơ bản trong việc điều khiển RefEdit phần 1 pdf

10 355 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 1,33 MB

Nội dung

C C H H Ư Ư Ơ Ơ N N G G   I I V V : :   L L Ậ Ậ P P   T T R R Ì Ì N N H H   T T R R Ê Ê N N   M M I I C C R R O O S S O O F F T T   E E X X C C E E L L   173 Hình IV-19: Điều khiển RefEdit Điều khiển RefEdit cũng tương tự như điều khiển Textbox, vì vậy có thể tham khảo thêm về điều khiển TextBox để biết thông tin về các phương thức và thuộc tính của điều khiển RefEdit. Khi thực hiện các thao tác sử dụng RefEdit, cần ghi nhớ những điểm sau: Ø Ø Điều khiển RefEdit trả về chuỗi chứa địa chỉ của vùng dữ liệu. Sau đó, có thể chuyển chuỗi đó thành đối tượng kiểu Range sử dụng đoạn mã tương tự như sau: Dim UserRange As Range Set UserRange = Range(RefEdit1.Text) Ø Ø Nên khởi tạo giá trị ban đầu cho điều khiển RefEdit bằng địa chỉ của vùng dữ liệu hiện hành. Để làm được như vậy, trong sự kiện UserForm_Initialize của UserForm cần thêm đoạn mã lệnh tương tự như sau: RefEdit1.Text = ActiveWindow.Selection.Address Ø Ø Đừng bao giờ nghĩ rằng RefEdit luôn trả về địa chỉ đúng. Bởi lẽ không phải chỉ có mỗi cách chọn vùng dữ liệu bằng chuột, người dùng còn có thể gõ và hiệu chỉnh địa chỉ hiển thị trên điều khiển RefEdit. Vì vậy, phải luôn kiểm tra tính đúng đắn của địa chỉ vùng dữ liệu. Đoạn mã sau minh hoạ cách kiểm tra lỗi này. Nếu vùng dữ li ệu nhập vào không đúng, một hộp thông báo sẽ hiện lên, và cho phép người dùng nhập lại: On Error Resume Next Set UserRange = Range(RefEdit1.Text) If Err <> 0 Then MsgBox “Invalid range selected” RefEdit1.SetFocus Exit Sub End If On Error GoTo 0 Ø Ø Người dùng có thể chọn một sheet khác trên thẻ chứa các sheet khi đang chọn vùng dữ liệu. Vì vậy, không nên giả sử rằng vùng dữ liệu được chọn sẽ nằm trên sheet hiện hành. Tuy nhiên, nếu người dùng chọn một sheet khác, địa chỉ của vùng dữ liệu sẽ được tự động thêm vào một tiền tố là tên của sheet được chọn. Chẳng hạn như: Sheet2!$A$1:$C$4 Ø Ø Nếu chỉ cần lấy địa chỉ của một ô trong vùng dữ liệu mà người dùng đã chọn, người lập trình có thể chọn ra một ô ở góc trên bên trái của vùng dữ liệu đó bằng cách sử dụng đoạn mã lệnh như sau: Set OneCell = Range(RefEdit1.Text).Range(“A1”) GỢI Ý Để người dùng chọn một vùng dữ liệu nào đó, có thể sử dụng hộp thoại InputBox của Excel, xem thêm mục “Hộp thoại InputBox của Excel – Hàm InputBox” trang 162. 8.4. Thao tác trên thanh trình đơn Hầu hết các chương trình chạy trong hệ điều hành Windows đều có hệ thống thanh trình đơn bởi tính tiện dụng và hệ thống của nó. Thông qua thanh trình đơn, các chức năng của chương trình được tổ chức và liệt kê giúp người sử dụng có thể dễ dàng truy cập đến từng tính năng của chương trình một cách có hệ thống. Giáo trình hướng dẫn những quy luật cơ bản trong việc điều khiển RefEdit 174 Đối với các ứng dụng mở rộng viết bằng VBA, việc thực thi một Macro nào đó đều được thực hiện thông qua trình quản lý Macro hoặc được thực thi trực tiếp trong VBAIDE. Điều này gây ra nhiều khó khăn cho những người dùng và làm giảm tính chuyên nghiệp của ứng dụng. Thay vào đó, với một số đoạn mã lệnh đơn giản, người lập trình có thể tự xây dựng hệ thống trình đơn, tạo nên một giao diện người dùng có tính hiệu quả cao cho ứng dụng mở rộng của mình. Excel có hai hệ thống thanh trình đơn tương ứng với kiểu sheet được chọn là Worksheet hay Chartsheet. Thanh trình đơn thứ nhất, có tên là Worksheet Menu Bar, được hiển thị khi sheet được chọn là Worksheet hoặc khi đã đóng tất cả các Workbook. Đây là thanh trình đơn mặc định của Excel. Thanh trình đơn thứ hai, có tên là Chart Menu Bar, được hiển thị khi sheet được chọn là Chart sheet hoặc người dùng đang chọ n một đối tượng Chart nhúng trong Worksheet. Hình IV-20: Thanh trình đơn trong Excel. 8.4.1. Cấu trúc của hệ thống thanh trình đơn Cấu trúc của hệ thống thanh trình đơn trong Excel có thể được thể hiện thông qua sơ đồ hình cây như sau: Ø Ø Menu Bar: Là hàng chữ nằm ở trên cùng, ngay phía dưới thanh tiêu đề của ứng dụng Excel. Như đã đề cập, tuỳ vào từng ngữ cảnh mà thanh Menu Bar có thể là Worksheet Menu Bar hoặc Chart Menu Bar. Ø Ø Menu: Là một thành phần trong hệ thống trình đơn của Excel, khi người dùng kích chuột vào một Menu thì một danh sách các MenuItem sẽ hiện ra. C C H H Ư Ư Ơ Ơ N N G G   I I V V : :   L L Ậ Ậ P P   T T R R Ì Ì N N H H   T T R R Ê Ê N N   M M I I C C R R O O S S O O F F T T   E E X X C C E E L L   175 Ø Ø Menu Item: là một thành phần của Menu xuất hiện khi người dùng kích chuột vào menu. Mỗi Menu Item sẽ thực hiện một tác vụ trong chương trình khi người dùng kích chuột lên Menu Item đó. Ø Ø Ngoài ra, trong hệ thống menu của Excel còn có khái niệm Separator Bar, là một đường gạch ngang phân cách giữa các Menu Item dùng để nhóm các Menu Item có liên quan với một mục tiêu nào đó. Các Menu có thể lồng vào nhau theo nhiều cấp khác nhau. Một Menu cũng có thể là MenuItem nằm trong một Menu khác. Chẳng hạn như Menu View củ a Excel có MenuItem tên là Toolbars, và đến lượt mình, Toolbars cũng chính là một Menu, có chứa các MenuItem khác như: Standard, Formatting,… Hình sau sẽ minh hoạ rõ hơn về cấu trúc của hệ thống trình đơn trong Excel. Hình IV-21: Hệ thống thanh trình đơn 8.4.2. Tạo trình đơn tuỳ biến Người lập trình có thể dễ dàng thêm và hiệu chỉnh hệ thống trình đơn trong Excel thông qua các đoạn mã lệnh bằng VBA theo các bước sau: 1. Phác thảo trình đơn cần tạo và các chức năng tương ứng. 2. Viết mã lệnh cho từng MenuItem. Mỗi đoạn mã lệnh này được chứa trong một chương trình con dạng Sub. 3. Tham chiếu đến Menu Bar, nơi cần tạo trình đơn tuỳ biến. 4. Tạo Menu và MenuItem. 5. Gán các đoạn mã lệnh tương ứng đã tạo ở bước 2 cho từng Menu Item. Để tham chiếu đến Menu Bar, có thể sử dụng đoạn mã sau: Dim mnuBar as CommandBar Set mnuBar = Application.CommandBars("Worksheet Menu Bar") Để tạo Menu và MenuItem, sử dụng phương thức Add có trong tập đối tượng Controls. Thực chất, phương thức này sẽ thêm một điều khiển vào trong tập đối tượng Controls của đối tượng 176 gốc, nơi sẽ chứa Menu và MenuItem. Cú pháp của phương thức Add như sau (tất cả các tham số đều là tham số tuỳ chọn): object.Add(Type, Id, Parameter, Before, Temporary) Tham số Mô tả Object Đối tượng cha, nơi chứa các đối tượng sẽ được thêm vào bằng phương thức Add. Type Xác định kiểu đối tượng sẽ được thêm vào trong tập đối tượng Controls của đối tượng Object. Tham số Type có thể bằng một trong các giá trị sau: - Nếu muốn tạo Menu: gán Type= msoControlPopup - Nếu muốn tạo Menu Item: gán Type= msoControlButton Id Số nguyên xác định điểu khiển được xây dựng sẵn. Trong trường hợp này, khi cần tạo một đối tượng mới, có thể gán tham số này bằng 1 hoặc bỏ trống. Parameter Với Menu tuỳ biến, tham số này có thể được dùng để gửi thông tin đến các thủ tục trong Visual Basic. Thông thường, tham số này được bỏ trống. Before Một số xác định vị trí xuất hiện của đối tượng mới được thêm vào. Nếu tham số này được bỏ trống, đối tượng mới sẽ được thêm vào vị trí cuối cùng. Temporary Nếu bằng TRUE, đối tượng chỉ xuất hiện tạm thời. Nghĩa là đối tượng sẽ được xoá đi khi thoát khỏi chương trình. Giá trị mặc định của tham số này là False. Kiểu giá trị trả về của phương thức Add là đối tượng kiểu CommandBarControl, hoặc có thể là một trong các kiểu dữ liệu sau, tuỳ thuộc vào giá trị của tham số Type: Ø Ø Nếu Type= msoControlPopup: kiểu giá trị trả về là CommandBarPopup. Ø Ø Nếu Type= msoControlButton: kiểu giá trị trả về là CommandBarButton. Phương thức Add chỉ tạo các đối tượng trống trên hệ thống thanh trình đơn. Vì vậy, người lập trình cần phải gán thêm các thuộc tính khác cho những đối tượng mới này. Dưới đây là danh sách các thuộc tính của đối tượng kiểu CommandBarControl: Thuộc tích Mô tả BeginGroup Nếu gán bằng TRUE, phía trước điều khiển sẽ xuất hiện Separator Bar để ngăn cách các nhóm trình đơn. BuiltIn Đây là thuộc tích chỉ đọc. Trả về giá trị TRUE nếu điều khiển này là điều khiển đã được xây dựng sẵn trong Excel. Caption Chuỗi văn bản sẽ được hiển thị trên trình đơn. Enabled Nếu bằng TRUE, người dùng có thể kích chuột lên đối tượng. Nếu bằng FALSE, người dùng sẽ không thể kích chuột, và điều khiển sẽ có màu xám. FaceID Số nguyên thể hiện cho hình ảnh sẽ được hiển thị bên cạnh đoạn văn bản được hiển thị trên thanh trình đơn. Id Đây là thuộc tính chỉ đọc. Là mã số xác định các trình đơn đã được định nghĩa trước trong Excel. OnAction (Chỉ áp dụng với CommandBarButton) Tên của thủ tục VBA sẽ được thực thi khi người dùng kích chuột vào MenuItem. ShortcutText (Chỉ áp dụng với CommandBarButton) Đoạn văn bản hiển thị phần phím tắt cho MenuItem đó. C C H H Ư Ư Ơ Ơ N N G G   I I V V : :   L L Ậ Ậ P P   T T R R Ì Ì N N H H   T T R R Ê Ê N N   M M I I C C R R O O S S O O F F T T   E E X X C C E E L L   177 State (Chỉ áp dụng với CommandBarButton) Xác định trạng thái của MenuItem: có được nhấn hay không. ToolTipText Đoạn văn bản sẽ hiển thị khi người dùng trỏ chuột ngay phía trên điều khiển. Type Đây là thuộc tính chỉ đọc. Số nguyên xác định kiểu của điều khiển Thông thường, sau khi tạo mới Menu và MenuItem cần gán các thuộc tính sau: Ø Ø Caption Ø Ø OnAction Ø Ø FaceID Dưới đây là một ví dụ minh hoạ các bước tạo mới một Menu trong thanh trình đơn “Worksheet Menu Bar” Vídụ:TạoMenumới 1. Phác thảo cấu trúc của Menu như sau: 2. Viết mã lệnh cho từng MenuItem ‘MÃ LỆNH CHO MENUITEM2: TINH TONG Sub Macro1() MsgBox "Ban da chon MenuItem: Tinh Tong" End Sub ‘MÃ LỆNH CHO MENUITEM3: TINH TICH Sub Macro2() MsgBox "Ban da chon MenuItem: Tinh Tich" End Sub ‘MÃ LỆNH CHO MENUITEM6: LUA CHON 1 Sub Macro3() MsgBox "Ban da chon MenuItem: Lua chon 1" End Sub ‘MÃ LỆNH CHO MENUITEM7: LUA CHON 2 Sub Macro4() MsgBox "Ban da chon MenuItem: Lua chon 2" End Sub 178 3. Tạo hệ thống Menu và gán mã lệnh cho từng MenuItem Sub TaoMenu() Dim cb As CommandBar Dim cpop As CommandBarPopup Dim cpop2 As CommandBarPopup Dim cbtn As CommandBarButton ' LẤY THAM CHIẾU ĐẾN THANH TRÌNH ĐƠN Set cb = Application.CommandBars("Worksheet Menu Bar") ' TẠO MENU1: “VI DU MENU” (CommandBarPopup). Set cpop = cb.Controls.Add(Type:=msoControlPopup, Temporary:=True) cpop.Caption = "&Vi du Menu" ' TẠO MENUITEM2: “TINH TONG” (CommandBarButton). ' (thêm MenuItem vào MENU1) Set cbtn = cpop.Controls.Add(msoControlButton, , , , True) ' Gán thuộc tính cho MenuItem. cbtn.Caption = "Tinh Tong" ‘ Gán tiêu đề cbtn.OnAction = "Macro1" ‘ Gán mã lệnh ' TẠO MENUITEM3: “TINH TICH” (CommandBarButton). Set cbtn = cpop.Controls.Add(msoControlButton, , , , True) cbtn.Caption = "Tinh Tich" cbtn.OnAction = "Macro2" ' TẠO MENU4: “MENU CAP 2” (CommandBarPopup). ' Đây là MenuItem bắt đầu một nhóm trình đơn khác Set cpop2 = cpop.Controls.Add(msoControlPopup, , , , True) cpop2.Caption = "Menu Cap 2" ' Thêm SeparatorBar vào phía trước Menu này. cpop2.BeginGroup = True ' TẠO MENUITEM5: “LUA CHON 1” (CommandBarButton). Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True) cbtn.Caption = "Lua chon &1" cbtn.OnAction = "Macro3" ' TẠO MENUITEM6: “LUA CHON 2” (CommandBarButton). Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True) cbtn.Caption = "Lua chon &2" cbtn.OnAction = "Macro4" End Sub Trong các câu lệnh tạo hệ thống trình đơn như trên, tham số Temporary của phương thức Add đều được gán bằng True, vì vậy, khi người dùng thoát khỏi Excel thì các hệ thống trình đơn vừa thêm vào sẽ được tự động xoá đi. 8.4.3. Xoá trình đơn tuỳ biến Khi người dùng chỉ đóng workbook mà không đóng Excel, trình đơn vừa được thêm vào vẫn còn được hiển thị trên hệ thống thanh trình đơn của Excel hoặc người dùng làm việc với m ột workbook khác mà không cần đến những tính năng trong trình đơn. Như vậy, có những lúc cần phải xoá trình đơn vừa được thêm vào. Để thực hiện điều này, có thể sử dụng phương thức Delete có trong đối tượng kiểu CommandBarControl hoặc CommandBarPopup hoặc CommandBarButton. Đoạn mã lệnh sau thực hiện xoá trình đơn “Vi du Menu” đã được tạo ra ở ví dụ trên. C C H H Ư Ư Ơ Ơ N N G G   I I V V : :   L L Ậ Ậ P P   T T R R Ì Ì N N H H   T T R R Ê Ê N N   M M I I C C R R O O S S O O F F T T   E E X X C C E E L L   179 Sub XoaMenu() Dim cb As CommandBar Dim cbp As CommandBarPopup ‘Lấy tham chiếu đến thanh trình đơn Set cb = Application.CommandBars("Worksheet Menu Bar") On Error Resume Next ‘Tham chiếu đến trình đơn “Vi du Menu” Set cbp = cb.Controls("Vi du Menu") If Not IsNull(cbp) Then cbp.Delete End If End Sub Ngoài ra, thay vì xoá trình đơn vừa tạo ra, người lập trình có thể thiết lập lại trạng thái ban đầu của hệ thống thanh trình đơn trong Excel thông qua phương thức Reset. Sau khi sử dụng phương thức này, tất cả các trình đơn do người dùng tạo ra sẽ được xoá đi, và hệ thống thanh trình đơn sẽ trở về trạng thái mặc định. Sub ResetMenu() Dim cb As CommandBar Dim cbp As CommandBarPopup ‘Lấy tham chiếu đến thanh trình đơn Set cb = Application.CommandBars("Worksheet Menu Bar") cbp.Reset End Sub Trong hầu hết các trường hợp, người lập trình sẽ tạo trình đơn lúc mở workbook, và sẽ xoá trình đơn khi đóng workbook và ta có thể thực hiện tự động quá trình này thông qua viêc xử lý sự kiện liên quan đến việc mở và đóng Workbook. Trong sự kiện Workbook_Open, gọi đến thủ tục thực hiện việc tạo trình đơn, còn trong sự kiện Workbook_BeforeClose, gọi đến thủ tục thực hiện việc xoá trình đơn. ‘SỰ KIỆN Workbook_Open Private Sub Workbook_Open() ‘Gọi thủ tục thực hiện việc tạo trình đơn TaoMenu End Sub ‘SỰ KIỆN Workbook_BeforeClose Private Sub Workbook_BeforeClose(Cancel As Boolean) ‘Gọi thủ tục thực hiện việc xoá trình đơn XoaMenu End Sub 8.4.4. Gán phím tắt cho Menu Item Gán phím tắt cho Menu Item thực chất là gán phím tắt cho Macro tương ứng với Menu Item đó (là Macro được gán cho Menu Item thông qua thuộc tính OnAction). Bổ sung đoạn mã lệnh sau vào cuối thủ tục TaoMenu ở ví dụ trước để gán phím tắt là CTRL+SHIFT+T cho Menu Item “ Tinh Tong”: ‘Tạo phím tắt cho MenuItem Application.MacroOptions _ Macro:="Macro1", _ HasShortcutKey:=True, _ ShortcutKey:="T" 180 Trong khi tạo hệ thống trình đơn “Vi du Menu” ở ví dụ trước, Menu Item “Tinh Tong” có thuộc tính OnAction được gán bằng “Macro1”. Do đó để gán phím tắt cho Menu Item này, người lập trình phải thực hiện thông qua việc gán phím tắt cho Macro có tên là “ Macro1”. C C H H Ư Ư Ơ Ơ N N G G   I I V V : :   L L Ậ Ậ P P   T T R R Ì Ì N N H H   T T R R Ê Ê N N   M M I I C C R R O O S S O O F F T T   E E X X C C E E L L   181 182 CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD 1. Tổng quan về AutoCAD 1.1. Khả năng của AutoCAD AutoCAD là một phần mềm hỗ trợ tạo bản vẽ kỹ thuật được dùng phổ biến nhất hiện nay. Đây là sản phẩm của hãng Autodesk và được phát triển liên tục trong nhiều năm nay, điều này thể hiện ở việc cập nhật hàng năm của các phiên bản AutoCAD. Với AutoCAD, người dùng có thể dễ dàng tạo ra bản vẽ kỹ thuật dạng 2 chiều và dựng mô hình ba chiều cho các v ật thể với nhiều cách thể hiện khác nhau như dạng khung lưới hoặc dạng vật thể đặc như hình dưới. Hình vẽ trong AutoCAD được tổ chức chủ yếu theo dạng vector và chuẩn lưu trữ dạng DWG được biết đến như là chuẩn lưu trữ hình vẽ dạng vector hiệu quả nhất thế giới. Để tạo sự thuận lợi tối đa cho ngườ i dùng, AutoCAD đã được thiết kế với cấu trúc và tính năng rất hợp lý: Ø Ø Không gian để tạo bản vẽ được chia thành hai loại:   Không gian mô hình (Model), là nơi mà người dùng có thể vẽ hay dựng mô hình của bất cứ vật thể nào mà không cần quan tâm đến giới hạn về kích thước của đối tượng, của bản vẽ cũng như tỷ lệ trình bày.   Không gian trình bày hay còn gọi là không gian in (Layout), là nơi mà người dùng có thể vẽ hay dựng mô hình như không gian mô hình, nhưng đây không phải là mục đích chính của không gian in. Mục đích chính của không gian in là giúp cho người dùng có thể biểu diễn hoặc trình bày bản vẽ theo ý tưởng của mình dựa trên mô hình đã được dựng (hay đã được vẽ) trong không gian mô hình. Trong không gian in, với số lượng không hạn chế, người dùng có thể dễ dàng tạo ra những bản in có tỷ lệ khác nhau, cách bố trí, sắp đặt khác nhau từ một mô hình đã vẽ này. Hình dưới là mô hình của vật thể được xây dựng trong không gian mô hình. . chương trình được tổ chức và liệt kê giúp người sử dụng có thể dễ dàng truy cập đến từng tính năng của chương trình một cách có hệ thống. Giáo trình hướng dẫn những quy luật cơ bản trong việc điều. C C H H Ư Ư Ơ Ơ N N G G   I I V V : :   L L Ậ Ậ P P   T T R R Ì Ì N N H H   T T R R Ê Ê N N   M M I I C C R R O O S S O O F F T T   E E X X C C E E L L   17 3 Hình IV -19 : Điều khiển RefEdit Điều khiển RefEdit cũng tương tự như điều khiển Textbox, vì vậy có thể tham khảo thêm về điều khiển TextBox để biết thông tin. C C H H Ư Ư Ơ Ơ N N G G   I I V V : :   L L Ậ Ậ P P   T T R R Ì Ì N N H H   T T R R Ê Ê N N   M M I I C C R R O O S S O O F F T T   E E X X C C E E L L   18 1 18 2 CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD 1. Tổng quan về AutoCAD 1. 1. Khả năng của AutoCAD AutoCAD là một phần mềm hỗ trợ tạo bản vẽ kỹ

Ngày đăng: 09/08/2014, 17:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN