VBA 如何显示文件夹,就是只打开文件夹就可以了

程序结束前,在界面上显示打开的指定的文件夹,

直接使用Shell函数,使用explorer.exe来打开文件夹即可。代码如下:

Sub showdir()
  Shell "explorer.exe D:\dir", vbNormalFocus
End Sub

效果如下:


Shell 函数说明
运行可执行程序并在成功时返回表示程序的任务 ID 的 Variant (Double),否则返回零。
语法
Shell(pathname[,windowstyle])
Shell 函数语法具有以下命名参数:
组成部分
说明
pathname
必需;Variant (String)。要执行的程序的名称以及任何必需的参数或命令行开关;可能包括目录或文件夹和驱动器。在 Macintosh 中,可以使用 MacID 函数指定应用程序的签名,而不是名称。以下示例使用 Microsoft Word 的签名:
Shell MacID("MSWD")
windowstyle
可选。与要运行程序的窗口的样式对应的 Variant (Integer)。如果省略 windowstyle,程序将启动并最小化,但会获得焦点。在 Macintosh(System 7.0 或更高版本)中,windowstyle 只确定应用程序在运行时是否获得焦点。
windowstyle 命名参数具有以下值:
常量 值 说明
vbHide    0 隐藏窗口并将焦点传递给隐藏的窗口。vbHide 常量在 Macintosh 平台中不适用。
vbNormalFocus 1 窗口获得焦点,并还原到其原始尺寸和位置。
vbMinimizedFocus 2 窗口显示为具有焦点的图标。
vbMaximizedFocus 3 窗口最大化并具有焦点。
vbNormalNoFocus 4 窗口还原到最近的尺寸和位置。当前活动的窗口仍保持活动状态。
vbMinimizedNoFocus 6 窗口显示为图标。当前活动的窗口仍保持活动状态。
注释
如果 Shell 函数成功执行命名文件,它将返回已启动程序的任务 ID。任务 ID 是标识正在运行的程序的唯一编号。如果 Shell 函数无法启动指定的程序,则会发生错误。
在 Macintosh 中,vbNormalFocus、vbMinimizedFocus 和 vbMaximizedFocus 都将应用程序放在前台;vbHide、vbNoFocus、vbMinimizeFocus 都将应用程序放在后台。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-18
shell "explorer.exe D:\test"追问

虽然文件夹打开了,但是没有显示在界面上,如果我之前已经打开了多个文件夹,就无法确认最后打开的是哪个了,所以要打开文件夹同时显示出来,有点像弹出警告的样子,不知道描述的是否清楚

追答Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1

Private Sub Command1_Click()
   ShellExecute 0, "open", "d:\test", 0, 0, SW_SHOWNORMAL
End Sub

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网