能夠修改Word命令的VBA代碼

來源:互聯網
上載者:User

  在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+數字小鍵盤上的”+”號,當游標變成”中國結”時,點向所需按鈕命令,即出現一個自訂對話方塊,在這個對話方塊中所顯示的命令,就是你要的命令名稱。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.