在Office应用程序中构建通用文件浏览器

在本文中,将探讨如何在Office应用程序中创建一个通用的文件浏览器。虽然将以Excel为例,但所介绍的方法同样适用于所有支持VBA的应用程序。当打开Excel文件并在VBViewer(快捷键ALT+F11)中查看整个项目时,会发现主要工作是由名为FileBrowser的模块完成的。可以将这个模块导出并导入到其他项目中。

代码解释

将使用VBScript声明一些Windows API函数,这些函数对于构建文件浏览器界面至关重要。由于篇幅限制,不会详细解释所有使用的Windows API函数。以下是一些关键的API函数声明:

Declare Function th_apiGetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (OFN As thOPENFILENAME) As Boolean Declare Function th_apiGetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (OFN As thOPENFILENAME) As Boolean Declare Function CommDlgExtendetError Lib "commdlg32.dll" () As Long

GetOpenFileName函数是构建此界面的关键。有关这些函数的详细信息,请查阅API指南。注意:OFN是一个容器,允许浏览文件。

Function StartIt() Dim strFilter As String Dim lngFlags As Long strFilter = thAddFilterItem(strFilter, "Excel Files (*.xls)", "*.XLS") strFilter = thAddFilterItem(strFilter, "Text Files(*.txt)", "*.TXT") strFilter = thAddFilterItem(strFilter, "All Files (*.*)", "*.*") Startform.filenameinput.Value = thCommonFileOpenSave(InitialDir:="C:\Windows", Filter:=strFilter, FilterIndex:=3, Flags:=lngFlags, DialogTitle:="File Browser") Debug.Print Hex(lngFlags) End Function

这是主要函数StartIt。thAddFilterItems显示在下拉菜单中,用于选择不同的文件类型。如果想添加其他项目,例如Word文件(*.doc),复制并粘贴该行并填写喜欢的内容。重要的是InitialDir,它给出了开始的路径。函数thCommonFileOpenSave控制对话框并返回一个字符串,包含选定的文件。这个字符串被赋予Startform的textbox filenameinput。现在,有了控制权,可以在用户选择的表单中使用文件。函数thCommonFileOpenSave看起来可能很复杂,但大多数时候它只是设置OFN对象的属性。

If OpenFile Then fResult = th_apiGetOpenFileName(OFN) Else fResult = th_apiGetSaveFileName(OFN) If fResult Then If Not IsMissing(Flags) Then Flags = OFN.Flags thCommonFileOpenSave = TrimNull(OFN.strFile) Else thCommonFileOpenSave = vbNullString End If End If
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485