shell 创建文件_vba代替鼠标打开文件夹
在 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代替鼠标打开文件夹相关推荐
- Linux下多个进程可以同时打开同一个文件吗?文件描述符与打开文件的关系?
一:结论 1.两个进程中分别产生生成两个独立的fd 2.两个进程可以任意对文件进行读写操作,操作系统并不保证写的原子性 3.进程可以通过系统调用对文件加锁,从而实现对文件内容的保护 4.任何一个进程删 ...
- Winform中实现文件另存为后并打开文件
场景 在Winform程序中点击按钮实现Excel导出,会打开对话框,文件另存为之后自动打开文件. Process.Start Method 重载 Start() 启动(或重用)此 Process ...
- VS2015无法打开包括文件corecrt.h 无法打开文件ucrtd.lib
VS2015无法打开包括文件"corecrt.h" 无法打开文件"ucrtd.lib" 在网上是VS2015的一个BUG,如果是选择"从父级或项目默认 ...
- Linux中的文件描述符与打开文件之间的关系
1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件.文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是 ...
- linux c中的文件描述符与打开文件之间的关系
转载请说明出处:http://blog.csdn.net/cywosp/article/details/38965239 1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通 ...
- java中打开文件显示_在默认文件资源管理器中打开文件,并使用JavaFX或普通Java突出显示它...
我想做标题所说的. 部分解决方案 例如,在Windows中,您可以使用以下代码在默认资源管理器中打开文件并突出显示它. (虽然它需要修改包含空格的文件): /** * Opens the file w ...
- 文件描述符与打开文件的关系
所有执行I/O操作的系统调用都以文件描述符,即一个非负整数来指代所打开的文件.文件描述符可以用来表示所有类型的已打开文件.同时,多个文件描述符可以指向同一个打开文件,因为有在不同进程中打开同一个文件的 ...
- python怎么打开文件解释_python怎么打开文件的路径?
python怎么打开文件的路径? python打开文件路径的方法: 1.我们知道用绝对路径打开一个文件.f=open('c:/Users/Administrator/Desktop/2.txt','r ...
- java打开的文件过多_显示打开文件数目过多的解决方法.
经常问的问题 如何从表中删除记录? 不要那样做 说真的 只需选择要保留的记录并替换原始表即可. 我想使我的O脚本既可执行又可加载,并将命令行参数传递给它. 在Linux-下使用以下shebang #! ...
最新文章
- vue中的倒计时跳转页面问题和axios网络请求this作用域问题
- 几个帅气的linux命令
- shell调用函数并获取函数返回值
- 书接上文——python实现感知分类器模型分类过程动态可视化
- python-opencv 角点检测的 FAST 算法
- 使用ArcMap将txt数据转换成shp数据
- IAR教程之IAR安装
- 开源的屏幕画笔工具(基于WPF InkCanvas)
- 数字图像处理 冈萨雷斯(第四版)韦伯比的理解
- echarts地图插入图片
- 开源无国界,从openEuler Maintainer到Spark Committer的贡献开源之路
- uni-app修改页面背景色
- 外置MOS 开关型 PWM调光 降压恒流驱动芯片
- DeadException
- java浏览器无界面后台截屏工具
- morton码_求矩阵四叉树的四进制和十进制Morton码
- Pandas 分析美国选名的喜好
- 数据结构算法——1091. 六度空间
- 科幻小说对科技的贡献
- 独立站 “ 去中心化 ” 模式崛起,席卷跨境企业转型浪潮
热门文章
- Linux printf()占位符
- Mac安装IDA后各版本android_server
- C语言之生成汇编代码(十)
- 长时间工作意味着什么
- Collection __NSArrayM: 0xxxxxxx was mutated while being enumerated.
- 深度学习自学(二十六):人脸数据集
- LED显示驱动(七):图层基本测试总结
- 云计算学习笔记:什么是云?云计算是什么?
- elasticsearch_spring-data-elasticsearch 快速入门-Spring Boot+Elasticsearch
- python怎么打印图片_Python打印图片