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 p3 ppsx

5 332 0
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 p3 ppsx

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

Thông tin tài liệ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   163 Ø Ø Người sử dụng có thể lựa chọn một vùng dữ liệu trực tiếp trên worksheet bằng cách sử dụng chuột; Ø Ø Việc kiểm tra dữ liệu nhập vào được thực hiện tự động. Cú pháp của hàm InputBox này như sau: Application.InputBox(prompt, title, default, left, top, helpFile, context, type) Hầu hết các tham số đều là tham số tuỳ chọn, chỉ có tham số prompt là bắt buộc phải nhập vào. Ý nghĩa của các tham số như sau: Tham số Giải thích prompt Đoạn văn bản sẽ hiển thị trong hộp thoại title Tiêu đề của hộp thoại InputBox default Giá trị mặc định. Nếu người dùng không nhập gì cả, hàm sẽ trả về giá trị mặc định này. left, top Toạ độ góc trên bên trái của hộp thoại. helpFile, context Tên tệp trợ giúp và chủ đề cần hiển thị type Mã xác định kiểu trả về của hàm. Bảng sau thể hiện các loại mã xác định kiểu trả về của hàm: Mã Kiểu giá trị trả về là 0 Công thức 1 Số 2 Chuỗi 4 Boolean (True hoặc False) 8 Đối tượng kiểu Range. Tham chiếu đến một vùng dữ liệu 16 Giá trị lỗi, chẳng hạn như #NA 64 Mảng giá trị Hàm InputBox của Excel được sử dụng khá linh hoạt. Hàm này có thể cho phép có nhiều hơn một kiểu giá trị trả về bằng cách cộng các loại mã thích hợp. Ví dụ như muốn hộp thoại InputBox cho phép nhập vào cả số và chuỗi, có thể nhập tham số type bằng 3 (tức là 1+2, hay “Số” cộng “chuỗi”). Còn nếu gán tham số type bằng 8 thì người dùng có thể tự nhập vào địa chỉ của vùng dữ liệu trong hộp thoại, hoặc cũng có thể chọn vùng dữ liệu trên worksheet bằng chuột. Ví dụ sau, thủ tục EraseRange, sử dụng hàm InputBox để người dùng lựa chọn một vùng dữ liệu để xoá. Người dùng có thể nhập vào địa chỉ của vùng dữ liệ u hoặc cũng có thể chọn bằng cách dùng chuột. Hàm InputBox với tham số type bằng 8 sẽ trả về đối tượng kiểu Range (chú ý từ khoá Set trước hàm InputBox, vì lúc này hàm sẽ trả về đối tượng chứ không phải là một giá trị đơn thuần). Vùng dữ liệu này sẽ được xoá đi bằng phương thức Clear. Giá trị mặc định được hiển thị trong hộp thoại InputBox là địa chỉ của vùng được chọn hiện hành. Câu lệnh On Error nhằm mục đích sẽ thoát khỏi thủ tục khi có lỗi xảy ra. Sub EraseRange() Dim UserRange As Range 164 Dim DefaultRange As String DefaultRange = Selection.Address On Error GoTo Canceled Set UserRange = Application.InputBox _ (Prompt:=“Vùng dữ liệu cần xoá:”, _ Title:= “Xoá vùng dữ liệu”, _ Default:=DefaultRange, _ Type:=8) UserRange.Clear UserRange.Select Canceled: End Sub Một lợi điểm nữa của việc sử dụng hàm inputBox của Excel chính là việc tự động thực hiện kiểm tra giá trị nhập vào. Trong ví dụ trên, nếu người dùng nhập vào giá trị không phải là địa chỉ của một vùng dữ liệu, Excel sẽ hiển thị một hộp thông báo và nhắc người dùng nhập lại dữ liệu. 8.2.2. Hộp thoại Open – Hàm GetOpenFilename Trong một số chương trình, khi cần nhập vào tên tệp nào đó, ta có thể sử dụng hộp thoại InputBox để yêu cầu người sử dụng nhập vào tên tệp từ bàn phím. Tuy nhiên cách này có thể phát sinh lỗi do người dùng nhập vào một tên tệp không tồn tại (có thể do gõ phím sai hoặc không nhớ chính xác tên tệp). Một cách tốt hơn để làm việc này chính là sử dụng phương thức GetOpenFilename của đối tượng Application. Ph ương thức này sẽ hiển thị hộp thoại Open (giống như khi chọn trình đơn FileÖOpen) nhưng chỉ trả về tên tệp được chọn mà không mở một tệp nào cả. Người dùng chỉ việc chọn tệp bằng các công cụ trực quan có sẵn trong hộp thoại. Cú pháp của phương thức này như sau (tất cả các tham số đều là tham số tuỳ chọn): GetOpenFilename(FileFilter,FilterIndex,Title,ButtonText,MultiSelect) 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   165 Tham số Giải thích FileFilter Chuỗi chứa bộ lọc tệp. FilterIndex Số thứ tự của bộ lọc tệp mặc định. Title Tiêu đề của hộp thoại, giá trị mặc định là “Open”. ButtonText Không sử dụng. MultiSelect Nếu bằng TRUE, người dùng có thể chọn nhiều tệp cùng một lúc. Mặc định là FALSE. Tham số FileFilter quy định các phần tử sẽ được hiển thị trong danh sách đổ xuống “File of type” của hộp thoại. Mỗi phần tử tương ứng với một loại tệp nào đó. Phần tử là một cặp giá trị gồm tên sẽ được hiển thị trong danh sách và phần mở rộng của loại tệp tương ứng. Nếu không gán giá trị cho tham số này, giá trị mặc định sẽ là: “All Files (*.*),*.*” Chú ý phần đầu của chuỗi này (phần nằm phía trước dấu phẩy - All Files (*.*)) là đoạn văn bản sẽ được hiển thị trong danh sách. Còn phần thứ hai của chuỗi (phần nằm sau dấu phẩy – *.*) chính là phần mở rộng của tệp sẽ được hiển thị. Ví dụ sau minh hoạ cách tạo một chuỗi chứa trong biến Filt có thể dùng để truyền vào tham số FileFilter của phương thức GetOpenFilename. Nh ư trong trường hợp này, người dùng có thể chọn 2 loại tệp (và một lựa chọn cho tất cả các tệp). Filt = “Text Files (*.txt),*.txt,” & _ “Comma Separated Files (*.csv),*.csv,” & _ “All Files (*.*),*.*” Ví dụ sau sẽ nhắc người dùng chọn một tệp, sau đó sẽ hiển thị tên tệp được chọn. Sub GetImportFileName() Dim Filt As String Dim FilterIndex As Integer Dim Title As String Dim FileName As String ' Gán bộ lọc tệp Filt = "Text Files (*.txt),*.txt," & _ "Comma Separated Files (*.csv),*.csv," & _ "All Files (*.*),*.*" ' Hiển thị các tệp *.csv là mặc định FilterIndex = 2 ' Gán tiêu đề cho hộp thoại Title = "Chon tep" ' Lấy tên tệp FileName = Application.GetOpenFilename _ (FileFilter:=Filt, _ FilterIndex:=FilterIndex, _ Title:=Title) ' Thoát nếu nhấn nút Cancel If FileName = "False" Then MsgBox "Khong tep nao duoc chon." Exit Sub End If ' Hiển thị tên tệp đầy đủ MsgBox "Ban vua chon tep: " & FileName 166 End Sub Hình IV-18: Hộp thoại Open 8.2.3. Hộp thoại Save As – Hàm GetSaveAsFilename Phương thức GetSaveAsFilename cũng tương tự như phương thức GetOpenFileName. Phương thức này sẽ hiển thị hộp thoại Save As, cho phép người dùng chọn hoặc chỉ định tệp để lưu, sau đó sẽ trả về tên tệp đầy đủ nhưng không thực hiện thao tác lưu nào cả. Cú pháp của phương thức này như sau: GetSaveAsFilename(InitialFilename,FileFilter,FilterIndex,Title,Button Text) Tham số Giải thích InitialFilename Xác định tên tệp gợi ý ban đầu FileFilter Chuỗi chứa bộ lọc tệp. FilterIndex Số thứ tự của bộ lọc tệp mặc định. Title Tiêu đề của hộp thoại, giá trị mặc định là “Save As”. ButtonText Không sử dụng. Ví dụ sau sẽ hiển thị hộp thoại Save As để người dùng nhập vào tên tệp, sau đó sẽ hiển thị tên tệp được lựa chọ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   167 Sub SaveAs() Dim fileSaveName As String fileSaveName = Application.GetSaveAsFilename( _ InitialFileName:="TenTep", _ FileFilter:="Excel Workbook (*.xls), *.xls", _ Title:="Luu tap tin") If fileSaveName <> "False" Then MsgBox "Save as " & fileSaveName End If End Sub 8.2.4. Hộp thoại chọn thư mục – Đối tượng FileDialog Nếu cần người dùng chọn một thư mục để thực hiện thao tác nào đó, có thể thực hiện theo nhiều cách khác nhau, nhưng đơn giản nhất vẫn là sử dụng đối tượng FileDialog. Ví dụ sau hiển thị một hộp thoại cho phép người dùng chọn thư mục. Sau đó hiển thị tên thư mục bằng cách s ử dụng hộp thoại MsgBox. Tên tệp sẽ được truy cập thông qua thuộc tính SelectedItems của đối tượng FileDialog. Sub GetAFolder() With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = Application.DefaultFilePath & “\” .Title = “Please select a location for the backup” .Show If .SelectedItems.Count = 0 Then MsgBox “Canceled” Else MsgBox .SelectedItems(1) End If End With End Sub Đối tượng FileDialog cho phép chỉ định thư mục ban đầu bằng cách gán giá trị cho thuộc tính InitialFileName. Trong ví dụ trên đã sử dụng thư mục mặc định của Excel làm thư mục ban đầu. 8.2.5. Các hộp thoại mặc định trong Excel – Tập đối tượng Dialogs Tập đối tượng Dialogs của đối tượng Application bao gồm 258 phần tử thể hiện hầu hết các hộp thoại mặc định trong Excel. Mỗi hộ p thoại có một hằng số được định nghĩa trước giúp người dùng có thể xác định được hộp thoại cần hiển thị một cách dễ dàng. Chẳng hạn như khi muốn hiển thị hộp thoại GoTo của Excel, sử dụng hằng số xlDialogFormulaGoto. Sử dụng phương thức Show để hiển thị các hộp thoại. Ví dụ sau sẽ hiển thị hộp thoại Go To của Excel. Application.Dialogs(xlDialogFormulaGoto).Show Người lập trình còn có thể viết mã lệnh để kiểm tra cách thức đóng hộp thoại. Trong ví dụ sau, biến Result sẽ trả về TRUE nếu người dùng kích chuột vào nút OK, và FALSE nếu kích chuột vào nút Cancel hoặc nhấn phím ESC. Result = Application.Dialogs(xlDialogFormulaGoto).Show Cần phải lưu ý rằng, tính năng này không được trình bày rõ ràng trong các tài liệu trợ giúp của Excel. Các tài liệu trợ giúp cho phần này rất sơ lược, không đề cập đến một sự thật: các hộp . 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   163 Ø Ø Người sử dụng có thể lựa chọn một vùng dữ liệu trực tiếp trên worksheet bằng cách sử dụng chuột; Ø Ø Việc kiểm tra dữ liệu nhập vào được thực. type bằng 3 (tức là 1+2, hay “Số” cộng “chuỗi”). Còn nếu gán tham số type bằng 8 thì người dùng có thể tự nhập vào địa chỉ của vùng dữ liệu trong hộp thoại, hoặc cũng có thể chọn vùng dữ liệu trên. bằng chuột. Ví dụ sau, thủ tục EraseRange, sử dụng hàm InputBox để người dùng lựa chọn một vùng dữ liệu để xoá. Người dùng có thể nhập vào địa chỉ của vùng dữ liệ u hoặc cũng có thể chọn bằng

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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan