Hộp thoại Open – Hàm GetOpenFilename

Một phần của tài liệu Tự động hóa thiết kế cầu đường lê quỳnh mai (Trang 168 - 171)

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

8. Giao diện người dùng

8.2. Các hộp thoại thông dụng

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 đơnFileOpen) 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)

Tham s Gii thch

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 phNy - 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 phNy – *.*) 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

http://www.ebook.edu.vn End If

' Hiển thị tên tệp đầy đủ

MsgBox "Ban vua chon tep: " & FileName End Sub

Hình II-61: 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,ButtonText)

Tham s Gii thch

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.

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

Một phần của tài liệu Tự động hóa thiết kế cầu đường lê quỳnh mai (Trang 168 - 171)

Tải bản đầy đủ (PDF)

(434 trang)