CorelDRAW VBA探秘

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/

上一篇下一篇

猜你喜欢

热点阅读