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

Giáo trình hướng dẫn cách làm việc với Range và Cells trên trong Microsoft excel phần 4 pdf

5 380 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 5
Dung lượng 0,91 MB

Nội dung

Đoạn mã sau chỉ hiển thị được thẻ Alignment của hộp thoại Format Cells: Application.DialogsxlDialogAlignment.Show Để hiển thị các thẻ khác trong hộp thoại Format Cells, phải sử dụng riê

Trang 1

168

thoại hiển thị khi gọi bằng VBA không hoàn toàn giống như khi gọi thông qua trình đơn trong Excel Chính vì vậy, chẳng có cách nào khác ngoài việc thử nghiệm để kiểm tra hoạt động của các hộp thoại

CHÚ Ý Các hộp thoại hiển thị khi gọi bằng VBA không hoàn toàn giống như khi gọi thông

qua trình đơn trong Excel

Trong trường hợp của hộp thoại Go To, khi hiển thị bằng VBA, nút Special bị mờ đi, không

hoàn toàn giống như khi chọn từ trình đơn EditÖGo To

Ngoài ra, còn có một vấn đề khác nữa, đó là việc không thể hiển thị được các hộp thoại có nhiều thẻ khác nhau Lấy ví dụ với hộp thoại Format Cell, không có cách nào để hiển thị đầy đủ hộp thoại này với nhiều thẻ khác nhau từ VBA, thay vào đó, chỉ có thể hiển thị một thẻ tại một thời điểm Đoạn mã sau chỉ hiển thị được thẻ Alignment của hộp thoại Format Cells:

Application.Dialogs(xlDialogAlignment).Show

Để hiển thị các thẻ khác trong hộp thoại Format Cells, phải sử dụng riêng lẻ các hằng số đã được định nghĩa trước như: xlDialogFormatNumber, xlDialogBorder, xlDialogCellProtection, xlDialogPatterns, hoặc xlDialogFontProperties

Trang 2

CHƯƠNG IV: LẬP TRÌNH TRÊN MICROSOFT EXCE  

169

Có rất nhiều hằng số được định nghĩa trước tương ứng với một hộp thoại trong Excel Danh sách đầy đủ các hằng số này có thể được tra cứu với Object Browser:

1 Trong mô đun mã lệnh VBAIDE, nhấn F2 để khởi động Object Browser

2 Trong cửa sổ Object Browser, chọn Excel ở danh sách phía trên

3 Trong danh sách thứ 2, gõ vào xlDialog

4 Kích chuột vào biểu tượng hình ống nhòm

CHÚ Ý Hiển thị một hộp thoại không đúng ngữ cảnh sẽ làm phát sinh lỗi Ví dụ như khi

đang chọn một chuỗi số liệu trong một biểu đồ mà lại hiển thị hộp thoại Fonts (hằng số xlDialogFontProperties) thì sẽ xuất hiện thông báo lỗi bởi vì hộp thoại này xuất hiện trong tình huống này là không thích hợp

Dưới đây là danh số một số hằng số hay được sử dụng:

Hằng số Mô tả

xlDialogOpen Hộp thoại Open

xlDialogSaveAs Hộp thoại Save As

xlDialogPageSetup Hộp thoại Page Setup

xlDialogPrint Hộp thoại Print

xlDialogPrinterSetup Hộp thoại Printer Setup

GỢI Ý Các hằng số tương ứng khi sử dụng tập đối tượng Dialogs được bắt đầu bằng

xlDialog và tiếp theo là tên của hộp thoại (viết liền nhau) Trong VBAIDE, gõ xlDialog sau

đó nhấn CTRL+Space để hiển thị cửa sổ gợi ý mã lệnh, trong đó sẽ có danh sách đầy đủ các hằng số liên quan

8.2.6 Thực thi mục trình đơn Excel từ VBA

Trang 3

170

Một cách khác nữa để hiển thị các hộp thoại mặc định là thực thi trực tiếp thông qua trình đơn Điều này cũng tương đương như khi sử dụng chuột để chọn một mục trình đơn trong thanh trình đơn của Excel

Đoạn mã lệnh sau tương đương với việc người dùng chọn trình đơn EditÖGo To trực tiếp

trong Excel:

Application.CommandBars(“Worksheet Menu Bar”) _

Controls(“Edit”).Controls(“Go To ”).Execute

Câu lệnh trên, khi thực thi sẽ hiển thị hộp thoại Go To Cần chú ý rằng, đoạn văn bản nằm trong dấu ngoặc phải giống hệt như những gì hiển thị trên thanh trình đơn (bao gồm cả dấu ba chấm sau chữ “Go To”)

Việc thực thi mục trình đơn như thế này được thực hiện khá đơn giản, hơn nữa còn khắc phục được nhược điểm không hiển thị hộp thoại có nhiều thẻ như đã đề cập ở phần “Các hộp thoại mặc định trong Excel – Tập đối tượng Dialogs” trang 167 Ví dụ sau sẽ hiển thị hộp thoại Format Cells với đầy đủ các thẻ định dạng

Application.CommandBars("Worksheet Menu Bar") _

Controls("Format").Controls("Cells ").Execute

Ngoài ra, theo cách này, người lập trình có thể thực thi bất kỳ một mục trình đơn nào có trong thanh trình đơn của Excel

8.3 Hộp thoại tuỳ biến – UserForm

Khi các hộp thoại mặc định trong Excel không đáp ứng được nhu cầu, người lập trình Excel có thể tạo ra các hộp thoại tuỳ biến của riêng mình thông qua các UserForm Với khả năng tuỳ biến cao, người lập trình có thể sử dụng UserForm và các điều khiển trên đó để tạo ra những hộp thoại với nhiều tính năng hơn, phù hợp hơn với nhu cầu thực tế hơn Việc tạo các hộp thoại tuỳ biến được thực hiện dễ dàng và hơn nữa với khả năng của mình, người lập trình có thể tạo

ra các hộp thoại trông chẳng khác gì hộp thoại của chương trình Excel

Hộp thoại tuỳ biến được tạo ra dựa trên UserForm thông qua VBAIDE Thông thường, có thể tạo hộp thoại tuỳ biến theo các bước sau:

1 Tạo mới một UserForm vào trong dự án VBA của Workbook

2 Viết thủ tục để hiển thị UserForm Thủ tục này phải được đặt trong một mô-đun của VBA (chứ không phải đặt trong mô-đun của UserForm)

3 Chèn thêm các điều khiển cần thiết trên UserForm

4 Điều chỉnh các điều khiển vừa thêm

5 Viết mã lệnh cho các sự kiện tương ứng của các điều khiển (nếu cần) Các thủ tục này phải được đặt trong mô-đun của chính UserForm đó

Sau khi thực hiện xong các bước trên, mỗi khi cần hiển thị hộp thoại tuỳ biến, chỉ cần thực thi thủ tục đã tạo ở bước 2

8.3.1 Tạo mới UserForm

Để tạo mới UserForm, khởi động VBAIDE (nhấn phím ALT+F11), chọn dự án ứng với

workbook cần thêm Userform, sau đó chọn trình đơn InsertÖUserForm Các UserForm sẽ

được tự động đặt tên UserForm1, UserForm2, Người lập trình có thể thay đổi tên của UserForm để dễ dàng nhận dạng UserForm thông qua cửa sổ Properties (chọn UserForm và nhấn phím F4 để hiển thị cửa sổ Properties)

Trang 4

CHƯƠNG IV: LẬP TRÌNH TRÊN MICROSOFT EXCE  

171

Mỗi một workbook có thể chứa nhiều UserForm khác nhau, mỗi UserForm chính là một hộp thoại tuỳ biến

8.3.2 Hiển thị UserForm

Để hiển thị UserForm, sử dụng phương thức Show của đối tượng UserForm Phương thức này

có cú pháp như sau:

object.Show modal

Trong đó:

Ø object: là đối tượng kiểu UserForm;

Ø modal: là tham số tuỳ chọn, xác định kiểu hiển thị của UserForm Modal có thể là một trong hai giá trị vbModal hoặc vbModeless Nếu là vbModal, người dùng phải đóng UserForm mới có thể tiếp tục thao tác với Excel Nếu là vbModeless, người dùng vẫn có thể vừa thao tác trên UserForm, vừa thao tác trên Excel Mặc định là giá trị vbModal Đoạn mã sau sẽ hiển thị UserForm có tên là UserForm1 ở chế độ Modal:

UserForm1.Show

Ngoài ra, còn có một kỹ thuật khác để hiển thị UserForm: sử dụng phương thức Add của tập đối tượng UserForm, sau đó sử dụng phương thức Show để hiển thị UserForm Phương thức này thích hợp khi trong dự án có nhiều UserForm và người có thể chỉ định sự xuất hiện của một UserForm bất kỳ Đoạn mã sau sẽ hiển thị UserForm có tên là UserForm1:

MyForm = “UserForm1”

UserForms.Add(MyForm).Show

CHÚ Ý Thủ tục để hiển thị hộp thoại tuỳ biến (UserForm) phải được đặt trong một

mô-đun chuẩn của VBA (chứ không phải đặt trong mô-mô-đun của UserForm)

Trang 5

172

VBA còn có lệnh Load Lệnh này chỉ tải UserForm vào trong bộ nhớ mà không hiển thị cho đến khi sử dụng phương thức Show của UserForm đó Để tải UserForm1 vào bộ nhớ, thực hiện như sau:

Load UserForm1

Khi có một UserForm tương đối phức tạp (có nhiều thành phần điều khiển cùng với nhiều dữ liệu bên trong đó), nếu sử dụng lệnh Load để tải UserForm vào bộ nhớ thì UserForm sẽ được hiển thị nhanh hơn khi sử dụng phương thức Show Tuy nhiên, trong đại đa số các trường hợp, chỉ cần sử dụng phương thức Show, bởi lẽ phương thức này cũng đã tự động thực hiện lệnh Load (nếu UserForm chưa được tải vào bộ nhớ) ngay trước khi hiển thị Userform

Một khi đã được hiển thị, UserForm sẽ luôn tồn tại trên màn hình cho đến khi người dùng đóng

nó lại Vì vậy, thông thường, người lập trình sẽ tạo thêm một nút lệnh (Command Button) trên UserFrom để thực hiện thủ tục đóng UserForm Thủ tục này có thể sử dụng lệnh Unload để dỡ

bỏ UserForm khỏi bộ nhó của máy tính, hoặc sử dụng phương thức Hide của đối tượng UserForm để tạm thời ẩn UserForm

Đoạn mã sau sẽ đóng cửa sổ UserForm1:

UserForm1.Hide

Hoặc có thể sử dụng đoạn mã sau để đóng cửa sổ UserForm1:

Unload UserForm1

Phương thức Hide chỉ tạm thời ẩn UserForm, bản thân UserForm vẫn còn trong bộ nhớ, các thuộc tính của UserFrom vẫn có thể được truy cập bình thường Còn lệnh Unload thì sẽ gỡ bỏ UserForm ra khỏi bộ nhớ, lúc này các thuộc tính của UserForm sẽ không thể truy cập được nữa

8.3.3 Các điều khiển trên UserForm

Người lập trình có thể dùng rất nhiều loại điều khiển khác nhau lên UserForm Thông tin chi

tiết, xem lại mục “Làm việc với UserForm và các thành phần điều khiển” trang 61 Dưới đây

chỉ trình bày thêm một điều khiển riêng của Excel, điều khiển RefEdit

Điều khiển RefEdit cho phép người dùng lựa chọn một vùng dữ liệu bằng cách nhập địa chỉ hoặc nhập tên vùng dữ liệu hoặc sử dụng chuột để chọn trực tiếp trong worksheet Khi người dùng kích chuột vào biểu tượng nhỏ ở góc phải của điều khiển, hộp thoại sẽ tạm thời được ẩn đi

và một cửa sổ nhỏ để người dùng chọn vùng dữ liệu sẽ được hiện lên, giống hệt như các hộp thoại mặc định của Excel

Ngày đăng: 23/07/2014, 22:21

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w