dialogs打開對話框選定文件夾,getopenfilename獲取文件名

若是須要使用「打開」、「打印」等Excel內置對話框已經具備的功能,可使用代碼直接調用這些內置的對話框,以下面的代碼所示。express

#001  Sub DialogOpen()數組

#002      Application.Dialogs(xlDialogOpen).Show arg1:=ThisWorkbook.Path & "\*.xls"字體

#003  End Subspa

代碼解析:orm

DialogOpen過程顯示內置的「打開」對話框並選定示例所在的文件夾。對象

顯示內置對話框語法以下:索引

Application.Dialogs(xlDialogConst).Show圖片

Dialogs集合表明全部的內置對話框,每一個Dialog對象表明一個內置對話框,不能新建內置對話框或向該集合中添加內置對話框。ci

參數xlDialogConst是內置對話框的內置常量,每一個常量都以「xlDialog」開頭,其後是對話框的名稱,如「打開」對話框的常量爲「xlDialogOpen」。經常使用內置對話框的內置常量如表格 77‑1所示。字符串

常量

說明

xlDialogActiveCellFont

476

單元格格式(字體)

xlDialogBorder

45

單元格格式(邊框)

xlDialogCellProtection

46

單元格格式(保護)

xlDialogDeleteFormat

111

單元格格式(數字)

xlDialogFormatNumber

42

單元格格式(數字)

xlDialogPatterns

84

單元格格式(圖案)

xlDialogClear

52

清除

xlDialogColumnWidth

47

列寬

xlDialogRowHeight

127

行高

xlDialogConditionalFormatting

583

條件格式

xlDialogDefineName

61

定義名稱

xlDialogDefineStyle

229

樣式

xlDialogDisplay

27

顯示選項

xlDialogFont

26

字體

xlDialogSetBackgroundPicture

509

工做表背景

xlDialogInsert

55

插入

xlDialogInsertHyperlink

596

插入超連接

xlDialogInsertPicture

342

插入圖片

xlDialogNew

119

新建工做簿

xlDialogOpen

1

打開

xlDialogSaveAs

5

另存爲

xlDialogWorkbookCopy

283

移動或複製工做表(創建副本)

xlDialogWorkbookInsert

354

插入工做表

xlDialogWorkbookMove

282

移動或複製工做表

xlDialogWorkbookName

386

重命名工做表

xlDialogWorkbookNew

302

新建工做表

xlDialogWorkbookProtect

417

保護工做簿

xlDialogPageSetup

7

頁面設置

xlDialogPrint

8

打印內容

xlDialogPrinterSetup

9

打印機設置

xlDialogPrintPreview

222

打印預覽

xlDialogSetPrintTitles

23

設置打印標題

xlDialogRun

17

xlDialogTable

41

模擬運算表

xlDialogSendMail

189

發送郵件

表格 77‑1       內置對話框的內置常量

顯示內置對話框使用Show方法,應用於Dialog對象的Show方法語法以下:

expression.Show(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)

參數expression是必需的,返回Dialog對象之一。

參數arg1到參數arg30是可選的,僅應用於內置對話框,是命令的初始參數。若要查找要設置的參數,請在內置對話框參數列表中查找對應的對話框常量。

運行alogOpen過程,顯示內置的「打開」對話框,而且直接選定示例所在的文件夾,如圖 77‑1所示。

 

 

1-1 獲取選定文件的文件名

若是隻但願獲取用戶在顯示的內置 「打開」對話框中選定文件的文件名,而不想真正打開該文件,那麼可使用GetOpenFilename方法,以下面的代碼所示。

#001  Sub OpenFilename()

#002      Dim Filename As Variant

#003      Dim mymsg As Integer

#004      Dim i As Integer

#005      Filename = Application.GetOpenFilename(Title:="刪除文件", MultiSelect:=True)

#006      If IsArray(Filename) Then

#007          mymsg = MsgBox("是否刪除所選文件?", vbYesNo, "提示")

#008          If mymsg = vbYes Then

#009              For i = 1 To UBound(Filename)

#010                  Kill Filename(i)

#011              Next

#012          End If

#013      End If

#014  End Sub

代碼解析:

OpenFilename過程使用GetOpenFilename方法顯示標準的內置「打開」對話框,獲取用戶選定文件的文件名後使用Kill語句刪除。

GetOpenFilename方法顯示標準的內置「打開」對話框,獲取文件名,語法以下:

expression.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

參數expression是必需的,返回一個Application對象。

參數FileFilter是可選的,指定文件篩選條件的字符串。若是省略,則默認參數值爲「全部文件(*.*)」。

參數FilterIndex是可選的,指定默認文件篩選條件的索引號,取值範圍爲 1 到由 FileFilter 所指定的篩選條件數目。若是省略,或者取值大於可用篩選數目,則採用第一個文件篩選條件。

參數Title是可選的,指定對話框的標題。若是省略,則使用「打開」做爲標題。

參數ButtonText是可選的,僅用於Macintosh。

參數MultiSelect是可選的,若是該值爲True,則容許選定多個文件名,若是該值爲False,則只容許選定單個文件名。默認值爲False。

第5行代碼顯示標準的「打開」對話框,將對話框的標題設置爲「刪除文件」,將MultiSelect參數設置爲True,容許選定多個文件。

第6行代碼,得到返回值。當用戶選定文件後,返回的是選定的文件名或用戶輸入的文件名。由於MultiSelect參數已設置爲True,因此返回值將是一個包含全部選定文件名的數組(即便僅選定了一個文件名)。若是用戶取消了對話框,則該值爲False。

第8行到第12行代碼,經詢問用戶後使用Kill語句從磁盤中刪除用戶選定的文件。

運行OpenFilename過程,顯示標準的內置「打開」對話框,刪除用戶選定的文件,如所圖 77‑2示。

 

圖 77‑2   獲取用戶選定文件的文件名

注意 VBA中數組下界默認從0開始,但使用GetOpenFilename方法選擇多個文件時返回的包含選定文件名的數組下界是從1開始。

相關文章
相關標籤/搜索