能够修改Word命令的VBA代码
时间:2023-12-13 15:33:36
在WORD中,我们可以通过修改WORD命令的方法,来方便地为WORD控件指定用户自定义的过程,完成或者转移(禁用)相应的内置方式.它的原理是利用相应宏名来置换过程的方法.在下面的三个部分中,我们可以体会其中的相同点与不同点。
Sub Example()
Dim i As CommandBarControl
For Each i In Application.CommandBars.FindControls
If i.ID = 4 Then
i.OnAction = "MySub" ’指定宏名
End If
Next
End Sub
Sub ResetSub()
Dim i As CommandBarControl
For Each i In Application.CommandBars.FindControls
If i.ID = 4 Then ‘ID=4 ‘相当于CTRL+P(文件/打印)
i.OnAction = "" ’恢复原有ID功能
End If
Next
End Sub
Private Sub Document_Close()
ResetSub ’关闭文档后恢复
End Sub
Private Sub Document_Open()
Example ‘修改
End Sub
以上为第一部分,以下为第二部分:
Sub FilePrint()
MySub
End Sub
Sub MySub()
MsgBox "不能使用打印功能!"
End Sub
该过程为公用部分
简析:在EXCEL中,我们只能通过FindControls(ID)的方法为原有程序修改命令指定宏过程;在WORD中,我们也可能通过该方法进行;但如果我们采取第二部分的话,更为简单,这就是所谓的修改WORD命令.当然一个名为MySub的过程可以省略,直接写在FilePrint宏中。以下为实用修改WORD命令的一个例子(该例子放在自定义模板中)
Sub FilePrint()’修改WORD命令(文件/打印:CTRL+P)
Dim Pc As Integer, Var As Integer
With Application.Dialogs(wdDialogFilePrint)
If .Show = -1 Then
Pc = .NumCopies ‘取得打印份数
Var = Me.Variables("PrintPageCount").Value ‘延续以前的打印份数
Me.Variables("PrintPageCount").Value = Pc + Var ‘至今共打印的张数
Me.Save ‘保存
MsgBox "目前累计打印份数为" & Me.Variables("PrintPageCount").Value
End If
End With
End Sub
Sub FilePrintDefault’修改WORD命令(常用工具栏/打印活动文档)
ActiveDocument.PrintOut ‘默认打印
Me.Variables("PrintPageCount").Value = _
Me.Variables("PrintPageCount").Value + 1
Me.Save ‘保存
MsgBox "目前累计打印份数为" & Me.Variables("PrintPageCount").Value
End Sub
Private Sub Document_Open()
On Error Resume Next
Me.Variables.Add Name:="PrintPageCount" ‘预定一个文档变量
End Sub
如果快速得到WORD中对应命令的命令名称,有多种方法,一是使宏对话框中的WORD命令,我们可以知道所有WORD命令,还可以使用宏对话框中的”ListCommands”命令,将所有WORD命令自动列表;还可以使用自定义/命令/所有命令中获得;也可以通过插入域/MacroButton域中的宏名列表中获得;最方便的是使用CTRL+ALT+数字小键盘上的”+”号,当光标变成”中国结”时,点向所需按钮命令,即出现一个自定义对话框,在这个对话框中所显示的命令,就是你要的命令名称。
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
WPS中怎样制作组织结构图图文教程
win10预览版10056曝光 win10预览版10056优化图标
![](https://img.aspxhome.com/file/2023/28/a250892_0s.jpg)
excel整列相乘某值的方法
怎样在WPS2005中给文字加上边框
![](https://img.aspxhome.com/file/2023/1/a167061_0s.jpg)
Win7提示Windows防火墙无法更改某些设置怎么办?
![](https://img.aspxhome.com/file/2023/27/a230566_0s.jpg)
Excel中怎么对OFFSET偏移引用
Win10提示无法使用内置管理员账户打开Edge如何解决?
![](https://img.aspxhome.com/file/2023/5/48715_0s.jpg)
windows自动弹出恶意广告怎么办
![](https://img.aspxhome.com/file/2023/30/a262510_0s.jpg)
Win10 版本升至Build 10022 新版本截图曝光
![](https://img.aspxhome.com/file/2023/29/a251748_0s.jpg)
win10怎么添加和删除输入法?win10添加和删除输入法教程
![](https://img.aspxhome.com/file/2023/5/48515_0s.png)
Win7主题服务无法自动启动解决方法
Word制作属于自己的DIY个性工具栏
![](https://img.aspxhome.com/file/2023/0/22170_0s.jpg)
Win11用USB或type-c耳机音量默认100的解决方法
![](https://img.aspxhome.com/file/2023/27/a234636_0s.jpg)
如何制作ICO文件?ICO图标制作方法介绍
![](https://img.aspxhome.com/file/2023/8/a340252_0s.jpg)
WPS表格使用区间进行多条件判断
5E对战平台自动设置路径失败怎么办?5E平台自动设置路径失败的解决方法
![](https://img.aspxhome.com/file/2023/7/a328393_0s.jpg)
excel中1像素等于多少厘米
如何利用Excel2010的自动填充数据的功能
![](https://img.aspxhome.com/file/2023/9/a141339_0s.jpg)
XP系统出现“确实允许此网页访问剪贴板吗”提示如何解决?
![](https://img.aspxhome.com/file/2023/3/a296204_0s.jpg)
word打开后右键点击没有反应无法弹出右键菜单怎么办?
![](https://img.aspxhome.com/file/2023/30/a271216_0s.png)