如何通过VBA代码将屏幕剪辑功能分配给命令按钮?
Office VBA绑定屏幕剪辑功能到命令按钮的实现方案
方案1:修复后调用Office内置ScreenClipping控件
虽然新版Office标记CommandBars为弃用状态,但核心常用控件的ExecuteMso方法仍可在桌面版Office正常运行,你之前调用失效多为触发条件配置问题:
- 屏幕剪辑对应的内置Mso ID为
ScreenClipping - 宏代码示例:
Sub 启动屏幕剪辑() ' 确保Office窗口处于前台激活状态 AppActivate Application.Caption DoEvents ' 调用内置屏幕剪辑功能 Application.CommandBars.ExecuteMso "ScreenClipping" End Sub
- 生效前提:
- 桌面版Office 2016/2019/2021/365 适用,UWP/网页版Office不支持
- 需在Office信任中心开启当前文档的宏运行权限
- 企业版Office未被管理员禁用内置控件调用权限
方案2:调用Windows系统截图(兼容性更强,无Office接口限制)
如果方案1仍无法运行,直接调用Windows原生截图功能,不受Office接口变更影响,剪辑后的图片会自动存入系统剪贴板,可直接粘贴到Office文档内:
Sub 启动系统屏幕剪辑() ' Win10 1809及以上、Win11 通用调用方式 Shell "explorer.exe ms-screenclip:", vbNormalFocus ' 如需剪辑后自动插入到当前Word/Excel/PPT文档,可追加粘贴代码 ' 示例(Word环境): ' DoEvents ' Selection.Paste End Sub
绑定到命令按钮的操作步骤
- 绑定到自定义快速访问栏/功能区按钮:进入「自定义功能区/快速访问栏」设置,选择「宏」分类,找到上述编写好的宏,添加到目标位置即可
- 绑定到VBA用户窗体按钮:双击窗体上的命令按钮,进入代码编辑页,将上述方案的代码粘贴到按钮的
Click事件过程中 - 绑定到文档内ActiveX按钮:右键点击文档内插入的ActiveX命令按钮,选择「查看代码」,粘贴上述代码到
Click事件过程中
内容的提问来源于stack exchange,提问作者MILLA KIANI
相关产品推荐
相关产品推荐

