Frank Rice
Microsoft Corporation
適用于:
Microsoft Office Word 2003
摘要: 您是否正尋找 Microsoft Word 使用的各種技巧,以便在進行開發(fā)時有所幫助?本文是 Microsoft Word 新聞組中各種技巧的匯編。通過使用這些程序并根據(jù)需要進行修改,可以使應(yīng)用程序更加可靠,并為您的用戶提供更多的選擇。
本頁內(nèi)容
簡介
本文介紹了使用 Word 的一些技巧,這些技巧來自不同的新聞組并經(jīng)過編輯。對于那些不熟悉新聞組的人,新聞組就是一種論壇,用戶和開發(fā)人員可以在此處提交與許多技術(shù)主題(如 Office 應(yīng)用程序)相關(guān)的各種問題。用戶和其他專業(yè)人員應(yīng)答這些問題。目前,新聞組包含豐富的定制信息,以便您使用選擇的 Office 應(yīng)用程序并進行開發(fā)。形成這些技巧的答案是許多超級用戶和具有最有價值專家 (MVP) 稱號的開發(fā)人員多年以來的經(jīng)驗結(jié)晶。有關(guān)新聞組的更多信息,請參閱 新聞組幫助文件。
向 Word 文檔中添加按鈕并指定運行時的單擊事件
本示例演示使用 Microsoft Visual Basic for Applications (VBA) 過程,以編程方式向 Word 文檔中添加控件,然后為該控件添加 Click 事件處理程序。
-
在 Word 中新建一個空白文檔。
-
按 Alt+F11 轉(zhuǎn)到 Visual Basic 編輯器。
-
單擊 Tools,然后單擊 References 并選擇 Microsoft Visual Basic for Applications Extensibility 引用。
-
單擊 Insert 菜單插入新模塊,然后單擊 Module。添加以下代碼:
Sub AddButton() 'Add a command button to a new document Dim doc As Word.Document Dim shp As Word.InlineShape Set doc = Documents.Add Set shp = doc.Content.InlineShapes.AddOLEControl(ClassType:="Forms.CommandButton.1") shp.OLEFormat.Object.Caption = "Click Here" 'Add a procedure for the click event of the inlineshape '**Note: The click event resides in the This Document module Dim sCode As String sCode = "Private Sub " & shp.OLEFormat.Object.Name & "_Click()" & vbCrLf & _ " MsgBox ""You Clicked the CommandButton""" & vbCrLf & _ "End Sub" doc.VBProject.VBComponents("ThisDocument").CodeModule.AddFromString sCode End Sub
-
運行“AddButton”過程。
-
代碼運行完成后,可在新建文檔中看到一個新的 CommandButton 控件。單擊該命令按鈕時,其 Click 事件引發(fā),顯示一條消息。
在打印文檔前顯示消息對話框
可以顯示消息對話框,以在打印文檔前向用戶提供信息。例如,可以顯示一條消息,告知用戶打印文檔后在何處選取此文檔。為此,請創(chuàng)建一個名為“FilePrint”的宏,它允許您截獲打印命令,添加到您自己的對話框中,然后添加可按正常模式打印文檔的代碼。下面是一些示例代碼:
-
在 Tools 菜單上,指向 Macro,然后單擊 Visual Basic Editor。
-
在代碼窗口中鍵入以下過程:
Sub FilePrint() MsgBox "I am printing " + ActiveDocument.Name ActiveDocument.PrintOut End Sub
請注意:必須將宏命名為 FilePrint。
-
關(guān)閉 Visual Basic 編輯器。
-
單擊 File 菜單,然后單擊 Print,以打印此文檔。
將顯示該消息對話框。
-
單擊 OK,關(guān)閉對話框并打印文檔。
向菜單項中添加命令
您是否曾有這樣的愿望:您的用戶可以像單擊菜單項一樣簡單地運行宏?按照以下步驟就可實現(xiàn)您的愿望:
-
單擊 Tools,單擊 Customize,單擊 Toolbars 選項卡,然后選擇 Shortcut menus 項。
-
展開此工具欄上的下拉列表,并找到希望添加此命令的菜單。
-
接著,移至 Customize 對話框的 Commands 選項卡上,并選擇 Macros 類別,然后單擊并拖動要移至菜單上的宏。
-
右鍵單擊該項,并根據(jù)需要自定義。.
從選定的形狀返回名稱和索引號
下面的過程演示了如何返回選定 Shape 對象的名稱和索引號。例如,如果您需要訪問代碼中的特定形狀對象,并需要名稱或索引,那么這就非常有用。
Sub ReturnShapeData()Dim ShapeName As String 'NameDim i As IntegerShapeName = Selection.ShapeRange.NameFor i = 1 To ActiveDocument.Shapes.CountIf ActiveDocument.Shapes(i).Name = ShapeName ThenMsgBox "Shape " & Chr(34) & ShapeName & Chr(34) & " is Shape " & iEnd IfExit ForNext iEnd Sub
將短日期轉(zhuǎn)換為完整日期格式
以下代碼用于將日期從 ##/##/#### 格式更改為完整日期格式。例如,將 10/20/2004 改為 2004 年 10 月 20 日星期三。
Sub ChangeDate()With Selection.find.Text = "[0-9]{2}/[0-9]{2}/[0-9]{4}".MatchWildcards = TrueWhile .ExecuteSelection.Text = Format(Selection.Text, "DDDD d. MMMM YYYY")Selection.Collapse direction:=wdCollapseEndWendEnd WithEnd Sub
使用文件名填充列表框
以下過程搜索指定目錄,并使用找到的文件名填充一個列表對話框。
Sub ListFilenames()Dim strMyFile As StringDim lngCounter As LongDim DirectoryListArray() As StringReDim DirectoryListArray(1000)strMyFile = Dir$("c:\docs\*.*")Do While strMyFile <> ""DirectoryListArray(lngCounter) = strMyFilestrMyFile = Dir$lngCounter = lngCounter + 1LoopReDim Preserve DirectoryListArray(lngCounter - 1)Frm.lstNormals.List = DirectoryListArrayEnd Sub
確定文件是否存在
以下示例檢查目錄中是否存在文件。如果 Dir 函數(shù)返回一個長度為零的字符串,表示未找到該文件,并顯示消息框。如果 Dir 函數(shù)找到此文件,則顯示一個相應(yīng)的消息框。
Sub DoesFileExist(SearchFile As String)Dim FileInQuestion As StringFileInQuestion = Dir(SearchFile)If FileInQuestion = "" ThenMsgBox "No such file!"ElseMsgBox "File exists!"End IfEnd Sub
創(chuàng)建屏蔽密碼的對話框
在 Word 中,您可以使用文本框創(chuàng)建自定義對話框,為用戶提供信息。一般情況下,當(dāng)在文本框中鍵入文本時,該文本按您鍵入的方式顯示。然而,您可以使用 Visual Basic Edition UserForm 的屬性來創(chuàng)建隱藏和屏蔽文本框效果。在創(chuàng)建密碼對話框(不希望顯示在文本框中所鍵入的文本)時,這很有用。要對此進行測試,請遵循如下操作:
創(chuàng)建對話框
-
啟動 Word。
-
按 Alt+F11 啟動 Visual Basic 編輯器。
-
在 Insert 菜單上,單擊 User Form。
-
使用“控件”工具箱將文本框和命令按鈕添加到您的用戶窗體中。
-
在 Properties 頁的 Object 列表中,單擊 TextBox1。
-
在 Alphabetic 選項卡上,單擊 PasswordChar。
-
鍵入一個星號 ( * )。
-
在 Properties 頁上的 Object 列表中,單擊 UserForm1。
-
單擊用戶窗體將其選定。
-
在 Run 菜單上,單擊 Run User Form。
鍵入字母時,不會顯示鍵入的字母,而顯示此星號。
檢索文本的代碼示例
要檢索寫入此文本框中的文本字符串,可以使用以下示例代碼:
-
在您的用戶窗體上雙擊 CommandButton1。
-
鍵入以下代碼:
Private Sub CommandButton1_Click() MsgBox Me.TextBox1 End Sub
-
單擊 Save 保存項目。
-
在 Run 菜單上,單擊 Run Sub/User Form。
-
在文本框中鍵入一個單詞,然后單擊 Command 按鈕。鍵入的文本顯示在消息框中。
取消/重設(shè)文檔保護
以下過程取消或重設(shè)文檔保護:
Sub ProtectIt(ProtectType)If ProtectType <> wdNoProtection ThenIf ActiveDocument.ProtectionType = wdNoProtection ThenActiveDocument.Protect Type:=ProtectType, NoReset:=True,Password:="My_PassWord"End IfEnd IfEnd SubFunction UnprotectIt()wasLocked = ActiveDocument.ProtectionTypeIf ActiveDocument.ProtectionType <> wdNoProtection ThenActiveDocument.Unprotect "My_Password"End IfUnprotectIt = wasLockedEnd Function
要在代碼段中使用它,請嘗試以下操作:
' First unprotect the document.ProType = UnprotectIt()' Here goes the code to be done in the unprotected document' then lock it back up.ProtectIt ProType
小結(jié)
本文介紹了在 Word 中使用的一些技巧和 VBA代碼。通過使用這些步驟并根據(jù)需要進行修改,可以使您的應(yīng)用程序更加可靠,并為您的用戶提供更多的選擇。
其他資源
下面是其他資源列表,這些資源可幫助您在 Word 中進行開發(fā)工作: