Tham khảo tài liệu ''giáo trình phân tích khả năng ứng dụng lập trình bằng ngôn ngữ visual basic trên java p5'', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
CHƯƠNG IV: LẬP TRÌNH TRÊN MICROSOFT EXCEL Hình IV-19: Điều khiển RefEdit Điều khiển RefEdit tương tự điều khiển Textbox, tham khảo thêm điều khiển TextBox để biết thông tin phương thức thuộc tính điều khiển RefEdit Khi thực thao tác sử dụng RefEdit, cần ghi nhớ điểm sau: Ø Điều khiển RefEdit trả chuỗi chứa địa vùng liệu Sau đó, chuyển chuỗi thành đối tượng kiểu Range sử dụng đoạn mã tương tự 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 địa vùng liệu hành Để làm vậy, kiện UserForm_Initialize UserForm cần thêm đoạn mã lệnh tương tự sau: RefEdit1.Text = ActiveWindow.Selection.Address Ø Đừng nghĩ RefEdit trả địa Bởi lẽ có cách chọn vùng liệu chuột, người dùng cịn gõ hiệu chỉnh địa hiển thị điều khiển RefEdit Vì vậy, phải ln kiểm tra tính đắn địa vùng liệu Đoạn mã sau minh hoạ cách kiểm tra lỗi Nếu vùng liệu nhập vào không đúng, hộp thông báo lên, cho phép người dùng nhập lại: On Error Resume Next Set UserRange = Range(RefEdit1.Text) If Err Then MsgBox “Invalid range selected” RefEdit1.SetFocus Exit Sub End If On Error GoTo Ø Người dùng chọn sheet khác thẻ chứa sheet chọn vùng liệu Vì vậy, khơng nên giả sử vùng liệu chọn nằm sheet hành Tuy nhiên, người dùng chọn sheet khác, địa vùng liệu tự động thêm vào tiền tố tên sheet chọn Chẳng hạn như: Sheet2!$A$1:$C$4 Ø Nếu cần lấy địa ô vùng liệu mà người dùng chọn, người lập trình chọn góc bên trái vùng liệu cách sử dụng đoạn mã lệnh sau: Set OneCell = Range(RefEdit1.Text).Range(“A1”) GỢI Ý Để người dùng chọn vùng liệu đó, sử dụng hộp thoại InputBox Excel, xem thêm mục “Hộp thoại InputBox Excel – Hàm InputBox” trang 162 8.4 Thao tác trình đơn Hầu hết chương trình chạy hệ điều hành Windows có hệ thống trình đơn tính tiện dụng hệ thống Thơng qua trình đơn, chức chương trình tổ chức liệt kê giúp người sử dụng dễ dàng truy cập đến tính chương trình cách có hệ thống 173 Đối với ứng dụng mở rộng viết VBA, việc thực thi Macro thực thơng qua trình quản lý Macro thực thi trực tiếp VBAIDE Điều gây nhiều khó khăn cho người dùng làm giảm tính chun nghiệp ứng dụng Thay vào đó, với số đoạn mã lệnh đơn giản, người lập trình tự xây dựng hệ thống trình đơn, tạo nên giao diện người dùng có tính hiệu cao cho ứng dụng mở rộng Excel có hai hệ thống trình đơn tương ứng với kiểu sheet chọn Worksheet hay Chartsheet Thanh trình đơn thứ nhất, có tên Worksheet Menu Bar, hiển thị sheet chọn Worksheet đóng tất Workbook Đây trình đơn mặc định Excel Thanh trình đơn thứ hai, có tên Chart Menu Bar, hiển thị sheet chọn Chart sheet người dùng chọn đối tượng Chart nhúng Worksheet Hình IV-20: Thanh trình đơn Excel 8.4.1 Cấu trúc hệ thống trình đơn Cấu trúc hệ thống trình đơn Excel thể thơng qua sơ đồ sau: Ø Menu Bar: Là hàng chữ nằm cùng, phía tiêu đề ứng dụng Excel Như đề cập, tuỳ vào ngữ cảnh mà Menu Bar Worksheet Menu Bar Chart Menu Bar Ø Menu: Là thành phần hệ thống trình đơn Excel, người dùng kích chuột vào Menu danh sách MenuItem 174 CHƯƠNG IV: LẬP TRÌNH TRÊN MICROSOFT EXCEL Ø Menu Item: thành phần Menu xuất người dùng kích chuột vào menu Mỗi Menu Item thực tác vụ chương trình người dùng kích chuột lên Menu Item Ø Ngồi ra, hệ thống menu Excel cịn có khái niệm Separator Bar, đường gạch ngang phân cách Menu Item dùng để nhóm Menu Item có liên quan với mục tiêu Các Menu lồng vào theo nhiều cấp khác Một Menu MenuItem nằm Menu khác Chẳng hạn Menu View Excel có MenuItem tên Toolbars, đến lượt mình, Toolbars Menu, có chứa MenuItem khác như: Standard, Formatting,… Hình sau minh hoạ rõ cấu trúc hệ thống trình đơn Excel Hình IV-21: Hệ thống trình đơn 8.4.2 Tạo trình đơn tuỳ biến Người lập trình dễ dàng thêm hiệu chỉnh hệ thống trình đơn Excel thông qua đoạn mã lệnh VBA theo bước sau: Phác thảo trình đơn cần tạo chức tương ứng Viết mã lệnh cho MenuItem Mỗi đoạn mã lệnh chứa chương trình dạng Sub Tham chiếu đến Menu Bar, nơi cần tạo trình đơn tuỳ biến Tạo Menu MenuItem Gán đoạn mã lệnh tương ứng tạo bước cho Menu Item Để tham chiếu đến Menu Bar, sử dụng đoạn mã sau: Dim mnuBar as CommandBar Set mnuBar = Application.CommandBars("Worksheet Menu Bar") Để tạo Menu MenuItem, sử dụng phương thức Add có tập đối tượng Controls Thực chất, phương thức thêm điều khiển vào tập đối tượng Controls đối tượng 175 gốc, nơi chứa Menu MenuItem Cú pháp phương thức Add sau (tất tham số 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 đối tượng thêm vào phương thức Add Type Xác định kiểu đối tượng thêm vào tập đối tượng Controls đối tượng Object Tham số Type 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 xây dựng sẵn Trong trường hợp này, cần tạo đối tượng mới, gán tham số bỏ trống Parameter Với Menu tuỳ biến, tham số dùng để gửi thơng tin đến thủ tục Visual Basic Thông thường, tham số bỏ trống Before Một số xác định vị trí xuất đối tượng thêm vào Nếu tham số bỏ trống, đối tượng thêm vào vị trí cuối Temporary Nếu TRUE, đối tượng xuất tạm thời Nghĩa đối tượng xoá khỏi chương trình Giá trị mặc định tham số False Kiểu giá trị trả phương thức Add đối tượng kiểu CommandBarControl, kiểu liệu sau, tuỳ thuộc vào giá trị tham số Type: Ø Nếu Type= msoControlPopup: kiểu giá trị trả CommandBarPopup Ø Nếu Type= msoControlButton: kiểu giá trị trả CommandBarButton Phương thức Add tạo đối tượng trống hệ thống trình đơn Vì vậy, người lập trình cần phải gán thêm thuộc tính khác cho đối tượng Dưới danh sách thuộc tính đối tượng kiểu CommandBarControl: Thuộc tích Mơ tả BeginGroup Nếu gán TRUE, phía trước điều khiển xuất Separator Bar để ngăn cách nhóm trình đơn BuiltIn Đây thuộc tích đọc Trả giá trị TRUE điều khiển điều khiển xây dựng sẵn Excel Caption Chuỗi văn hiển thị trình đơn Enabled Nếu TRUE, người dùng kích chuột lên đối tượng Nếu FALSE, người dùng kích chuột, điều khiển có màu xám FaceID Số nguyên thể cho hình ảnh hiển thị bên cạnh đoạn văn hiển thị trình đơn Id Đây thuộc tính đọc Là mã số xác định trình đơn định nghĩa trước Excel OnAction (Chỉ áp dụng với CommandBarButton) Tên thủ tục VBA thực thi người dùng kích chuột vào MenuItem ShortcutText (Chỉ áp dụng với CommandBarButton) Đoạn văn hiển thị phần phím tắt cho MenuItem 176 CHƯƠNG IV: LẬP TRÌNH TRÊN MICROSOFT EXCEL State (Chỉ áp dụng với CommandBarButton) Xác định trạng thái MenuItem: có nhấn hay không ToolTipText Đoạn văn hiển thị người dùng trỏ chuột phía điều khiển Type Đây thuộc tính đọc Số nguyên xác định kiểu điều khiển Thông thường, sau tạo Menu MenuItem cần gán thuộc tính sau: Ø Caption Ø OnAction Ø FaceID Dưới ví dụ minh hoạ bước tạo Menu trình đơn “Worksheet Menu Bar” Ví dụ: Tạo Menu mới Phác thảo cấu trúc Menu sau: Viết mã lệnh cho 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 Sub Macro3() MsgBox "Ban da chon MenuItem: Lua chon 1" End Sub ‘MÃ LỆNH CHO MENUITEM7: LUA CHON Sub Macro4() MsgBox "Ban da chon MenuItem: Lua chon 2" End Sub 177 ... mã lệnh đơn giản, người lập trình tự xây dựng hệ thống trình đơn, tạo nên giao diện người dùng có tính hiệu cao cho ứng dụng mở rộng Excel có hai hệ thống trình đơn tương ứng với kiểu sheet chọn... sau minh hoạ rõ cấu trúc hệ thống trình đơn Excel Hình IV-21: Hệ thống trình đơn 8.4.2 Tạo trình đơn tuỳ biến Người lập trình dễ dàng thêm hiệu chỉnh hệ thống trình đơn Excel thông qua đoạn mã... Hình IV-20: Thanh trình đơn Excel 8.4.1 Cấu trúc hệ thống trình đơn Cấu trúc hệ thống trình đơn Excel thể thơng qua sơ đồ sau: Ø Menu Bar: Là hàng chữ nằm cùng, phía tiêu đề ứng dụng Excel Như đề