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

时间: 2024-10-11 17:35:06

能够修改Word命令的VBA代码的相关文章

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

下面的WAPP是事先定义的word文档工程变量. 以下代码为通过VBA代码修改Word段落的缩进.段落间距.行距.分页等. //段落格式设定 WApp.Selection.ParagraphFormat.LeftIndent = WApp.CentimetersToPoints(float.Parse("0"));//左缩进 WApp.Selection.ParagraphFormat.RightIndent = WApp.CentimetersToPoints(float.Parse

设置Word表格的VBA代码

  VBA代码设置Word表格属性. Dim i As Table, N As Integer On Error Resume Next '忽略错误 Application.ScreenUpdating = False '关闭屏幕更新 For Each i In ActiveDocument.Tables '在表格中循环 With i .Style = "列表型 4" '将所有表格设置为"列表型4"的样式 With .Borders '边框 .InsideLineS

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

本Word的VBA代码的功能简介:在右键文本菜单的中部位置(相当于右击文本时出现的菜单),添加一个自定义命令,并执行相应过程. Private Sub Document_Close() On Error Resume Next Application.CommandBars("Text").Controls("Test").Delete '恢复原有菜单 End Sub Private Sub Document_Open() Dim Half As Byte On E

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

  有时候,在使用Word进行文字编辑的时候,突然遇到断电,或者电脑自动关机.死机等故障的时候,导致辛辛苦苦做出来的劳动成果全部泡汤,是很多网友都非常抓狂的事情.今天小编就教大家利用VBA代码,实现自动备份功能,使Word每隔几分钟可以自动备份,而不影响正在编辑的文件.接下来就一起来了解一下吧! 1.打开Word文件的 VBA编辑器,快捷键 Alt+F11,右击[ThisDocument]-> [插入模块]; 用VBA代码设置Word自动保存的步骤 2.双击刚才插入的[模块1],添加如下代码:

请哪位大神知道如何用VBA代码做word索引,求代码啊。。拜托拜托。。

问题描述 请哪位大神知道如何用VBA代码做word索引,求代码啊..拜托拜托.. 请哪位大神知道如何用VBA(visual basic)代码做word索引,求代码啊..拜托拜托.. 解决方案 我也来个:需要你手动提供关键词哦.... Sub Test() BiaoJiAll ""编辑|学校"" ''End SubSub BiaoJiAll(ByVal bStr As String) ''bStr为关键词,用|分割 On Error Resume Next Dim i

将VBA代码编译封装成为DLL动态链接库的方法

  一.为什么要编译成为DLL 我们知道,Visual C++.Visual Basic和C++ Builder以及Delphi等编译器所编译出来的程序不容易被人破解(相对来说),这是因为代码被编译成了可执行文件或者动态链接库文件.那么,我们是否可以将VBA代码封装到动态链接库文件中,然后用Word调用呢?回答是肯定的.而且这样做还有一个好处,即可以加快代码的运行速度. 二.将VBA代码封装成动态链接库 假如我们已经写好了一个VBA工程,而且运行无误. ①建立VB工程及一般性操作 首先,我们需要

从ASP.NET得到Microsoft Word文档的代码

背景 自动化(Automation)是一个过程,它允许编程语言譬如Visual Basic.NET或C#写的应用程序可以编程控制其它应用程序.自动化到Word允许你执行像创建新文档,向文档中添加文本,邮件合并,还有控制文档格式这样的操作.使用Word和其它Microsoft Office应用程序,几乎所有你能在用户面板上手动实现的操作都可以通过自动化编程实现.Word通过一个对象模型来实现这个编程功能性(programmatically functionality).对象模型是一系列类和方法,它

Word插入文件 VBA 合并 文件

(1)Word中有的时候,需要合并多个文件.Word本身提供了非常简单的方法.只需使用菜单"插入->文件"命令即可完成该操作.   VBA代码:Selection.Range.InsertFile(AFileName, '', False, False, False);   (2)可是会遇到一点问题 插入的文件,为啥不页眉信息丢失了.   如:我插入的文件某些页面是横向,但是现在插入后,不是横向的.   其实解决这个问题,是很容易的,那就是在插入文件的时候,选择"链接&

从ASP.NET得到Microsoft Word文档的代码_实用技巧

背景 自动化(Automation)是一个过程,它允许编程语言譬如Visual Basic.NET或C#写的应用程序可以编程控制其它应用程序.自动化到Word允许你执行像创建新文档,向文档中添加文本,邮件合并,还有控制文档格式这样的操作.使用Word和其它Microsoft Office应用程序,几乎所有你能在用户面板上手动实现的操作都可以通过自动化编程实现.Word通过一个对象模型来实现这个编程功能性(programmatically functionality).对象模型是一系列类和方法,它