實例1:統(tǒng)計修訂的字數(shù) 在實際工作中,我們經(jīng)常會對文檔進行修改,為了不同用戶查閱的方便,一般都會使用修訂模式,此時會在文檔中清楚的顯示出來,但增加的字數(shù)和刪除的字數(shù)卻并未被統(tǒng)計出來。難道只能手工統(tǒng)計? 利用VBA宏代碼,可以非常方便的統(tǒng)計出修訂過程中增加的字數(shù)和刪除的字數(shù),具體代碼如下: Sub test() Dim Rev As Revision, c1 As Long, n1 As Integer, a As String Dim Wd As Range, c2 As Long, n2 As Integer, b As String For Each Rev In ActiveDocument.Revisions If Rev.Type = wdRevisionInsert Then For Each Wd In Rev.Range.Words c1 = c1 + IIf(Wd Like "[一-龥]*", Wd.Characters.Count, 1) Next n1 = n1 + 1 a = a & Rev.Range.text & vbTab ElseIf Rev.Type = wdRevisionDelete Then For Each Wd In Rev.Range.Words c2 = c2 + IIf(Wd Like "[一-龥]*", Wd.Characters.Count, 1) Next n2 = n2 + 1 b = b & Rev.Range.text & vbTab End If Next MsgBox "增加內(nèi)容" & n1 & "處共" & c1 & "字;刪除內(nèi)容" & n2 & "處共" & c2 & "字。" End Sub
上述代碼主要是基于Word 2007對于Words集合對象的判斷進行統(tǒng)計,宏名稱“test”可以任意取;“[一-龥]”表示所有中文漢字。 代碼檢查無誤之后,單擊工具欄上的“保存”按鈕執(zhí)行保存操作,返回Word窗口之后,按下A l t+F8組合鍵,打開“宏”對話框,選擇列表框中的“test”,單擊右側(cè)的“運行”按鈕,很快會看到準確的結(jié)果,包括增加和刪除共幾種、多少字,這樣就清晰多了。
如果通過手工的方法進行操作,既麻煩也不方便,其實這里可以利用VBA代碼解決這一問題,代碼如下: Sub test() Dim oFootNote As Footnote, myRange As Range Dim BeforeName As String, BeforeSize As Single On Error Resume Next Application.ScreenUpdating = False For Each oFootNote In ActiveDocument.Footnotes With oFootNote Set myRange = ActiveDocument.Range(.Reference.Start, .Reference.End) .Range.Copy With myRange .Text = "(JZ: )" BeforeName = .Font.Name BeforeSize = .Font.Size myRange.SetRange .Start + 4, .Start + 4 .Paste .Font.Name = BeforeName .Font.Size = BeforeSize End With End With Next Application.ScreenUpdating = True End Sub 如果需要重新設(shè)置標記,可以對“.Text="(J Z:)" ”這一行進行更改;“BeforeName = .Font.Name”這一行是取得之前的字號大小,“.Font.Name =BeforeName”和“.Font.Size = BeforeSize”分別用來重新設(shè)置字體和字號。檢查無誤后,單擊工具欄上的“保存”按鈕,依次執(zhí)行“文件→關(guān)閉并返回到Microsoft Word”命令,返回Word窗口,然后“運行”該宏命令,你就可以看到最終結(jié)果了。
實例3:從任意頁面編排頁碼 很多時候,我們在使用Word編排文檔時,經(jīng)常需要從文檔的某個頁面開始顯示頁碼,而不是從文檔的第1頁顯示頁碼。對于比較熟悉Word的朋友來說,這只是個簡單的問題:先分節(jié),然后斷開節(jié)鏈接,最后在節(jié)中插入重新編號的頁碼即可。但是對于不經(jīng)常使用Word的朋友來說,要快速、順利完成這幾個操作并非易事。 其實,我們也可以借助VBA宏解決這一問題,而且操作更為簡單。打開目標文檔,按下Alt+F11組合鍵,打開Microsoft Visual Basic編輯器窗口,雙擊左側(cè)目標文檔文 件名下的ThisDocument,粘貼如下代碼: Sub test() Dim p As Integer On Error Resume Next p = InputBox("請輸入起始編排頁碼的頁次") With Selection .GoTo What:=wdGoToPage, Count:=p .InsertBreak Type:=wdSectionBreakContinuous .Sections(1).Footers(1).LinkToPrevious = False With .Sections(1).Footers(1).PageNumbers .RestartNumberingAtSection = True .StartingNumber = 1 .Add PageNumberAlignment:=wdAlignPageNumberCenter, FirstPage:=True End With End With End Sub