在 VBA造文件夹的思考 一文中介绍了如何用vba代码新建文件夹。

在用VBA操作文件和文件夹的过程中,除了新建文件夹,我们还经常需要与文件夹有个人机交互的过程,比如选择文件所在的文件夹,然后再执行一系列VBA动作。

这个选择的过程也是打开文件夹的一种,这种在VBA里用内置的对话框对象FileDialog就可以实现。

今天要讲的打开文件夹不是这种,而是指在完成了一系列VBA动作后,如何直接打开结果文件夹,看下执行的情况。

以前我们往往都是执行完程序后,再用鼠标去打开结果文件夹看下结果,今天介绍的方法可以直接连这个鼠标步骤都免了。

1.用Shell函数打开指定的文件夹

代码如下:

Sub exceloffice()    '*****************    '上面一连串代码    '最后打开文件夹看下效果    Dim sPath As String    sPath = "c:\test"    Shell "explorer.exe " & sPath, vbMaximizedFocusEnd Sub

Shell函数是vba内置的函数,使用起来非常方便。它可以直接运行各种exe程序,同时附带参数运行。

使用Shell函数还可以直接运行Python打包后的exe程序,从而借助Python的强大功能助推VBA

在本例中,Shell函数通过调用文件资源管理器explorer.exe直接打开指定的文件夹,其中 vbMaximizedFocus表示打开的时候最大化显示。

2.用Shell对象打开指定的文件夹

代码如下:

Sub exceloffice()    '*****************    '上面一连串代码    '最后打开文件夹看下效果    Dim sPath As String    sPath = "c:\test"    Dim oShell As Object    Set oShell = VBA.CreateObject("shell.application")    With oShell        .Open (sPath)    End WithEnd Sub

其实这个原理和Shell是一样的,但是Shell对象提供了自动化接口,功能更全,不仅可以打开文件夹,还可以做很多操作电脑的事情。

比如切换到桌面、打开运行对话框、关闭电脑等等,如下所示

Sub exceloffice()

    Set oShell = CreateObject("shell.application")

    With oShell

        '切换到桌面

        .ToggleDesktop

        '打开运行对话框

        .FileRun

        '关闭电脑,记得保存文件

        .ShutdownWindows

    End With

End Sub

最后附上Shell对象的所有方法列表:

方法 说明
AddToRecent 添加一个对象到“最近的文档”的列表。
BrowseForFolder 创建一个对话框让用户选择一个文件夹,然后返回所选文件夹的Folder对象。
CanStartStopService 确定是否当前用户可以启动和停止指定的服务。
CascadeWindows 层叠桌面上所有窗口,相当于右击任务栏选择“层叠窗口”。
ControlPanelItem 运行指定的控制面板(*.cpl)应用程序。如果应用程序已经打开,它就会激活运行的实例。
EjectPC 挂起计算机。如果电脑支持这个命令。
Explore 在Windows资源管理器窗口中打开一个指定的文件夹。
ExplorerPolicy 获取指定的 Internet Explorer 策略的数据值。
FileRun 显示运行对话框。
FindComputer 显示“搜索结果:计算机”对话框。
FindFiles 显示“搜索:所有文件”对话框。
FindPrinter 显示“查找打印机”对话框允许用户找到打印机。
GetSetting 检索Shell全局设置。
GetSystemInformation 检索系统信息。
Help 显示Windows帮助和支持中心。
IsRestricted 从注册表检索一个组的限定设置。
IsServiceRunning 返回一个值,表示指定服务是否正在运行。
MinimizeAll 最小化桌面上所有窗口。
NameSpace 创建和返回指定的文件夹的Folder对象。
Open 打开指定的文件夹。
RefreshMenu 刷新开始菜单中的内容。只用于Windows XP之前的系统。
ServiceStart 启动一个指定的服务。
ServiceStop 停止一个指定的服务。
SetTime 显示“日期和时间属性”对话框。
ShellExecute 对指定文件执行指定的操作。
ShowBrowserBar 显示一个浏览器工具栏。
ShutdownWindows 显示“关闭计算机”对话框。
Suspend 不执行。
TileHorizontally 横向平铺桌面上所有窗口。
TileVertically 纵向平铺桌面上所有窗口。
ToggleDesktop 显示或隐藏桌面。
TrayProperties 显示“任务栏和「开始」菜单属性”对话框。
UndoMinimizeALL 撤消最小化所有窗口,恢复所有桌面窗口到它们在上次MinimizeAll命令之前相同的状态。
Windows 创建和返回一个ShellWindows对象。这个对象表示属于壳的所有打开的窗口的集合。
WindowsSecurity 显示“Windows安全”对话框。
WindowSwitcher Windows Vista及以后系统的新增方法,在可以预览的3D堆栈中显示打开的窗口。

shell 创建文件_vba代替鼠标打开文件夹相关推荐

  1. Linux下多个进程可以同时打开同一个文件吗?文件描述符与打开文件的关系?

    一:结论 1.两个进程中分别产生生成两个独立的fd 2.两个进程可以任意对文件进行读写操作,操作系统并不保证写的原子性 3.进程可以通过系统调用对文件加锁,从而实现对文件内容的保护 4.任何一个进程删 ...

  2. Winform中实现文件另存为后并打开文件

    场景 在Winform程序中点击按钮实现Excel导出,会打开对话框,文件另存为之后自动打开文件. Process.Start Method 重载 Start()  启动(或重用)此 Process ...

  3. VS2015无法打开包括文件corecrt.h 无法打开文件ucrtd.lib

    VS2015无法打开包括文件"corecrt.h" 无法打开文件"ucrtd.lib" 在网上是VS2015的一个BUG,如果是选择"从父级或项目默认 ...

  4. Linux中的文件描述符与打开文件之间的关系

    1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件.文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是 ...

  5. linux c中的文件描述符与打开文件之间的关系

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/38965239 1. 概述     在Linux系统中一切皆可以看成是文件,文件又可分为:普通 ...

  6. java中打开文件显示_在默认文件资源管理器中打开文件,并使用JavaFX或普通Java突出显示它...

    我想做标题所说的. 部分解决方案 例如,在Windows中,您可以使用以下代码在默认资源管理器中打开文件并突出显示它. (虽然它需要修改包含空格的文件): /** * Opens the file w ...

  7. 文件描述符与打开文件的关系

    所有执行I/O操作的系统调用都以文件描述符,即一个非负整数来指代所打开的文件.文件描述符可以用来表示所有类型的已打开文件.同时,多个文件描述符可以指向同一个打开文件,因为有在不同进程中打开同一个文件的 ...

  8. python怎么打开文件解释_python怎么打开文件的路径?

    python怎么打开文件的路径? python打开文件路径的方法: 1.我们知道用绝对路径打开一个文件.f=open('c:/Users/Administrator/Desktop/2.txt','r ...

  9. java打开的文件过多_显示打开文件数目过多的解决方法.

    经常问的问题 如何从表中删除记录? 不要那样做 说真的 只需选择要保留的记录并替换原始表即可. 我想使我的O脚本既可执行又可加载,并将命令行参数传递给它. 在Linux-下使用以下shebang #! ...

最新文章

  1. vue中的倒计时跳转页面问题和axios网络请求this作用域问题
  2. 几个帅气的linux命令
  3. shell调用函数并获取函数返回值
  4. 书接上文——python实现感知分类器模型分类过程动态可视化
  5. python-opencv 角点检测的 FAST 算法
  6. 使用ArcMap将txt数据转换成shp数据
  7. IAR教程之IAR安装
  8. 开源的屏幕画笔工具(基于WPF InkCanvas)
  9. 数字图像处理 冈萨雷斯(第四版)韦伯比的理解
  10. echarts地图插入图片
  11. 开源无国界,从openEuler Maintainer到Spark Committer的贡献开源之路
  12. uni-app修改页面背景色
  13. 外置MOS 开关型 PWM调光 降压恒流驱动芯片
  14. DeadException
  15. java浏览器无界面后台截屏工具
  16. morton码_求矩阵四叉树的四进制和十进制Morton码
  17. Pandas 分析美国选名的喜好
  18. 数据结构算法——1091. 六度空间
  19. 科幻小说对科技的贡献
  20. 独立站 “ 去中心化 ” 模式崛起,席卷跨境企业转型浪潮

热门文章

  1. Linux printf()占位符
  2. Mac安装IDA后各版本android_server
  3. C语言之生成汇编代码(十)
  4. 长时间工作意味着什么
  5. Collection __NSArrayM: 0xxxxxxx was mutated while being enumerated.
  6. 深度学习自学(二十六):人脸数据集
  7. LED显示驱动(七):图层基本测试总结
  8. 云计算学习笔记:什么是云?云计算是什么?
  9. elasticsearch_spring-data-elasticsearch 快速入门-Spring Boot+Elasticsearch
  10. python怎么打印图片_Python打印图片