【VBA教材】64.Application应用案例详解 (三)

贡献者:罗刚君   日期:2010-02-08  阅读:2096  
相关标签:pub2007 VBA

Application应用案例详解 (三)

1.罗列最近使用过的文件
案例要求:以ET的文件菜单中,可以看到如图64.1所示的“最近使用的文档”,根据用户的设置不同,该文件的数量也有所差异。现要求将最近打开过的所有文件名包括路径罗列在工作表中。
知识要点:RecentFiles
实现步骤:
1)单击菜单【插入】\【模块】;
2)在模块代码窗口输入以下代码:
_________________________________________


Sub 罗列最近打开过的文件()
Dim i As Byte
'遍历所有文件
For i = 1 To Application.RecentFiles.Count
'在单元格中罗列每个文件的详细路径与文件名
Cells(i, 1) = Application.RecentFiles(i).Path & Application.RecentFiles(i).Name
Next
End Sub
_________________________________________


3)
返回工作表,利用快捷键【Alt+F8】打开“宏”对话框,选择并执行“罗列最近打开过的文件”,将在工作表A列中罗列出所有历史文件列表。图64.2是VBA过程的执行结果

图64.1 文件菜单中的历史文件列表

64.2 VBA过程列出的文档列表

语法补充
(1)Application.RecentFiles表示最近打开过的文件。
2)利用Item可以访问最近打开过的文件的每个子对象,而配合Open方法可以将某个位置的文件打开。例如将最近打开的文档列表中第三个文件打开,可以使用以下语句:
Application.RecentFiles(3).Open
(3)RecentFiles必须添加前置对象Application才可以使用。
2.建立文件目录
案例要求:将文件夹中的文件建立目录,需要切打多种格式
知识要点: GetOpenFilename
实现步骤:
1)单击菜单【插入】\【模块】;
2)在模块代码窗口输入以下代码:

_______________________________________________

Sub 创建文件目录()
'指定文件格式,包括四个大类
filesavename = Application.GetOpenFilename("报表文件 (*.xl*;*.et;*.xla),*.xl*;*.et;*.xla,WPS文件(*.wps), *.wps,图片文件 (*.jpg), *.jpg,所有文件 (*.*), *.*", , "请选择待打开的ET文件", , True)
On Error GoTo err '如果有错误就运行err标签后面的语句
For i = 0 To UBound(filesavename) '逐个循环
Cells(i + 1, 1) = filesavename(i) '创建目录
Next
Exit Sub
err: '如果未选择文件则提示
MsgBox "请选择文件,至少一个。"
End Sub

_______________________________________________

在该过程中第一句代三的能数True表示允许用户同时选择多个文件,甚至可以使用快捷键【Ctrl+A】选择所有文件。
3)返回工作表,利用快捷键【Alt+F8】打开“宏”对话框,选择并执行“建立文件目录”,将弹出一个“打开文件”对话框。在对话框底部的文件类型中定义了四种类型可选,包括报表文件、WPS文件、图片文件和所有文件。选择不同的类型在上方的文件框中则可以看到对应的文件。
4)假设文件类型选择“图片文件”,那么在文件框中会呈现出所有JPG文件供选择。可以按住Ctrlq键或者Shift键来进行多选择。
5)选择文件后单击“打开”按钮,A列中将罗列出所选择的文件的名字,包括其路径。


图64.3 选择文件类型
语法补充
GetOpenFilename
方法用于显示标准的打开对话框,并获取用户文件名,而不必真正打开任何文件。其语法如下:

Application. GetOpenFilename (FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
GetOpenFilename的各参数有如下函义:
名称必选/可选说明
FileFilter可选一个指定文件筛选条件的字符串。
FilterIndex可选指定默认文件筛选条件的索引号,取值范围为 1 到由 FileFilter 所指定的筛选条件数目。如果省略该参数,或者该参数的值大于可用筛选条件数,则使用第一个文件筛选条件。
Title可选指定对话框的标题。如果省略该参数,则标题为“打开”。
ButtonText可选仅限 Macintosh。
MultiSelect可选如果为 True,则允许选择多个文件名。如果为 False,则只允许选择一个文件名。默认值为 False

3FileFilter参数比较复杂,它定义了文件的类型,可以为一种,也可以是多种。其中每一种类型又可以包括我个相同类型的不同小类。例如图片类型可以细分JPG图片、PNG图片和GIF图片,报表文件可以分为ETExcel文件,以及xla加载宏文件。如果省略参数则表示所有文件“*.*”。

案例文件.et
对本篇文章的质量评星:
当前平均星级:4星--推荐 (4次评星)