有些 VBA 程式,需要讓使用者選擇電腦中的文件或是檔案,由於不容易記憶檔案路徑,通常都會呼叫”檔案視窗”(file dialog),讓使用者利用滑鼠點選檔案。本文說明 VBA 開啟檔案方法,呼叫 Application.GetOpenFilename 方法,開啟檔案視窗,讓使用者以圖形化的方式選擇檔案。
內容目錄
語法說明
Application.GetOpenFilename( FileFilter, FilterIndex, Title, ButtonText, MultiSelect )
備註: 所有引數皆為選填引數
- FileFilter:指定檔案視窗要顯示的文件類型。如果只要顯示 Excel 檔案,可以輸入“Excel Files (.xls), xls”,檔案視窗只會顯示 Excel 檔案
- FilterIndex:當 FileFilter 輸入 2 種類型以上的文件,可以指定預設的文件類型。預設值為 1
- Title:檔案視窗的標題
- ButtonText:此引數僅適用麥金塔
- MultiSelect:如果要允許選擇多個文件,輸入 TRUE;反之為 FALSE。引數預設值為 FALSE
範例說明
範例 1 | 不輸入任何引數,直接開啟檔案視窗
Application.GetOpenFilename 方法的所有引數都是選填。因此,我們可以不輸入任何引數,直接開啟檔案視窗。這是最簡單的使用方式
Sub open_file_example_1()
Dim FileName As String
Dim WB2 As Workbook
FileName = Application.GetOpenFilename
If FileName <> "False" Then
Set WB2 = Workbooks.Open(FileName)
End If
End Sub
行數 | 說明 |
---|---|
2 | 因為 GetOpenFilename 方法會回傳檔案路徑,因此宣告 FileName 變數,儲存檔案路徑 |
3 | 宣告工作簿變數,開啟的 Excel 檔案輸入至變數 |
5 | 使用 Application.GetOpenFilename 方法,輸入檔案路徑至變數 FileName |
6 | 使用者如果取消選擇檔案,會回傳”False”。使用 IF 判斷式,確認使用者已選取檔案,再開啟檔案 |
7 | 利用 Workbook.Open 方法讀取檔案路徑,開啟新工作簿,輸入變數 WB2 |
執行本範例的程式碼,會顯示如下的檔案視窗:
範例 2 | 指定選擇 Excel 檔案
以下範例,我們指定使用者選擇 Excel 檔案。我們在 FileFilter 引數中輸入“Excel Files (*.xls*), *xls*”
Sub open_file_example_2()
Dim FileName As String
Dim WB2 As Workbook
FileName = Application.GetOpenFilename("Excel Files (*.xls*), *xls*")
If FileName <> "False" Then
Set WB2 = Workbooks.Open(FileName)
End If
End Sub
行數 | 說明 |
---|---|
2 | 因為 GetOpenFilename 方法會回傳檔案路徑,因此宣告 FileName 變數,儲存檔案路徑 |
3 | 宣告工作簿變數,開啟的 Excel 檔案輸入至變數 |
5 | FileFileter 引數輸入 “Excel Files (*.xls*), *xls*” |
6 | 使用者如果取消選擇檔案,會回傳”False”。使用 IF 判斷式,確認使用者已選取檔案,再開啟檔案 |
7 | 利用 Workbook.Open 方法讀取檔案路徑,開啟新工作簿,輸入變數 WB2 |
執行本範例的程式碼,會看到檔案視窗只有顯示 Excel 檔案
範例 3 | 調整檔案視窗的標題
以下範例,我們調整檔案視窗的標題,標題改為:請選擇 Excel 檔案
Sub open_file_example_3()
Dim FileName As String
Dim WB2 As Workbook
FileName = Application.GetOpenFilename("Excel Files (*.xls*), *xls*", , "請選擇 Excel 檔案")
If FileName <> "False" Then
Set WB2 = Workbooks.Open(FileName)
End If
End Sub
行數 | 說明 |
---|---|
2 | 因為 GetOpenFilename 方法會回傳檔案路徑,因此宣告 FileName 變數,儲存檔案路徑 |
3 | 宣告工作簿變數,開啟的 Excel 檔案輸入至變數 |
5 | FileFileter 引數輸入 “Excel Files (*.xls*), *xls*” ;Title 引數輸入“請選擇 Excel 檔案” |
6 | 使用者如果取消選擇檔案,會回傳”False”。使用 IF 判斷式,確認使用者已選取檔案,再開啟檔案 |
7 | 利用 Workbook.Open 方法讀取檔案路徑,開啟新工作簿,輸入變數 WB2 |
執行本範例的程式碼,檔案視窗的標題已經被修改
如果本篇文章有幫助到你,請在下方拍手圖示按 5 下。只要花幾秒鐘登入 Google 或 FB 帳號,不需任何花費就能提供我實質的回饋,支持我繼續創作,謝謝