CorelDRAW VBA - 打开选择文件夹对话框
2018-01-10 本文已影响0人
成都超平面科技
公告
本专栏的相关的文章已不在简书同步更新,请直接访问 VBA探秘 官方网站或关注微信公众号获取最新文章动态。
coreldraw-vba-open-folder-dialog目的
有时候我们可能需要让用户选择某个文件夹,比如说让用户指定某个目录,用于批量导入该目录下的文件。这篇教程将教会你使用 CorelDRAW 在代码中调用系统的文件夹选择对话框,并循环输出文件的名称和路径。
实现
代码如下:
Sub chooseFolder()
' 声明变量
Dim shell, folder, fs, fd, files
' 创建Shell对象,用来浏览系统文件夹
Set shell = CreateObject("Shell.Application")
Set folder = shell.BrowseForFolder(0, "选择文件夹", 0, 0)
' 判断是否选择了文件夹
If Not folder Is Nothing Then
' 得到文件夹的路径
Dim folderPath As String
folderPath = folder.self.Path
MsgBox "你选择的文件夹路径是:" & folderPath
' 遍历该文件夹下的文件
Set fs = CreateObject("Scripting.FileSystemObject")
Set fd = fs.GetFolder(folderPath)
Set files = fd.files
MsgBox "该文件夹下共有" & files.Count & "个文件"
For Each file In files
MsgBox file.Name & " -> " & file.Path
Next
Else
MsgBox "你没有选择任何文件夹", vbInformation
End If
' 释放内存
Set folder = Nothing
Set shell = Nothing
End Sub
以上代码只是演示,在实际应用过程中,我们可以将其封装为一个函数,该函数的功能就是用来浏览文件夹,并返回地址,如果没有选择文件夹则返回空字符串。
封装为文件夹选择函数
改造后,可以参考以下代码:
Sub main()
Dim path As String
path = chooseFolder ' 调用文件夹选择函数,将其返回值传递给 path 变量
If path <> "" Then
MsgBox "你选择的是:" & path
Else
MsgBox "你什么都没有选择"
End If
End Sub
'==================================================================================
'文件夹选择函数
'@作者:Zebe
'@描述:调用文件夹选择对话框来获得选择的文件夹路径,如果没有选择则返回空字符串
'==================================================================================
Public Function chooseFolder() As String
' 声明变量
Dim shell, folder
' 创建Shell对象,用来浏览系统文件夹
Set shell = CreateObject("Shell.Application")
Set folder = shell.BrowseForFolder(0, "选择文件夹", 0, 0)
' 判断是否选择了文件夹
If Not folder Is Nothing Then
chooseFolder = folder.self.path ' 返回文件夹自身的路径
Else
chooseFolder = ""
End If
' 释放内存
Set folder = Nothing
Set shell = Nothing
End Function
以上函数可以封装在独立的模块里面,用于全局调用,这样就减少了重复代码的编写。
原创声明:本文首发于个人CorelDRAW VBA博客,请尊重文章版权。
转载请注明原文链接:http://www.cdrvba.com/coreldraw-vba-use-folder-choose-dialog/