能够修改Word命令的VBA代码

在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+数字小键盘上的”+”号,当光标变成”中国结”时,点向所需按钮命令,即出现一个自定义对话框,在这个对话框中所显示的命令,就是你要的命令名称。

(0)

相关推荐

  • Vba全面修改Word段落属性有效代码

    下面的WAPP是事先定义的word文档工程变量。 以下代码为通过VBA代码修改Word段落的缩进、段落间距、行距、分页等。 //段落格式设定 WApp.Selection.ParagraphForma ...

  • 如何设置Word表格的VBA代码

    VBA代码设置Word表格属性。 Dim i As Table, N As Integer On Error Resume Next ’忽略错误 Application.ScreenUpdating ...

  • 设置Word表格的VBA代码

    VBA代码设置Word表格属性。 Dim i As Table, N As Integer On Error Resume Next ’忽略错误 Application.ScreenUpdating ...

  • vba批量修改word内容(vba修改文本文件内容)

    VBA提供了很多对象控件,其中一个文本框是我们经常用到的一个类型,可以实现简单的文本输入,编辑功能.文本编辑过程当中有一个很实用的功能就是撤销和重写,这个功能就是让我们在输入错误的时候进行返回操作,同 ...

  • Word自定义右键菜单的VBA代码示例

    本Word的VBA代码的功能简介:在右键文本菜单的中部位置(相当于右击文本时出现的菜单),添加一个自定义命令,并执行相应过程。 Private Sub Document_Close() On Erro ...

  • word修改页边距/纸张纵向/装定线等vba代码

    下面的WAPP是事先定义的word文档工程变量。 以下代码为通过VBA代码来实现页面的页边距、纸张纵向、装定线、页眉页静等。 复制代码 代码如下: WApp.ActiveDocument.PageSe ...

  • 用VBA代码设置Word自动保存的步骤

    有时候,在使用Word进行文字编辑的时候,突然遇到断电,或者电脑自动关机、死机等故障的时候,导致辛辛苦苦做出来的劳动成果全部泡汤,是很多网友都非常抓狂的事情。今天小编就教大家利用VBA代码,实现自动备 ...

  • Excel表格中3句vba代码如何实现被修改内容以蓝色呈现高亮显示

    大家都知道在工作中,表格内容往往被他人反反复复修改多次,如果想知道有哪些地方被修改过,有什么好的方法呢?当然方法不止一种,在本文将为大家介绍下使用vba代码实现修改内容高亮显示,而且只需3句vba代码 ...

  • word怎么用VBA命令完成保存退出

    word怎么用VBA命令完成保存退出