這份文件的 Microsoft Word 97 版本,請參閱
187985。
摘要
本文包含四個的 Microsoft Visual Basic for Applications,您可以使用來模擬 [Microsoft Word 6.0,ENTER 鍵,在受保護的文件中的表單欄位之間移動的 Windows 功能的巨集。
更多的資訊
Microsoft 會提供程式設計範例僅供說明,不提供任何明示或默示的保證,其中包括,但不是限於適售性以及適合某特定用途之默示擔保責任。本文假設您已熟悉我們所示範的程式設計語言,以及用來建立和偵錯程序的工具。Microsoft 技術支援工程師可以協助解釋特定程序中的功能,但它們不會修改這些範例以提供附加功能或建構程序來滿足您的特定需求。
如果您有限制的程式設計經驗,您可能想要連絡微軟認證夥伴 」 或 「 Microsoft 諮詢服務。如需詳細資訊,請造訪下列 Microsoft 網站:
Microsoft 認證合作夥伴- https://partner.microsoft.com/global/30000104
Microsoft 諮詢服務- http://support.microsoft.com/gp/advisoryservice
如需有關可用的支援選項,以及有關如何連絡 Microsoft 的詳細資訊,請造訪下列 Microsoft 網站:http://support.microsoft.com/default.aspx?scid=fh;EN (英文)Cntactms (英文)
如其他有關如何執行範例程式碼的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
212536 OFF2000: 如何執行範例程式碼從知識庫文件
在 Word 6.0 中,輸入索引鍵的功能
在 Word 6.0 中的 Windows,受保護之文件中按 ENTER 鍵對於表單來說,如果插入點會移至下一個表單欄位。相較之下,在較新版本的 Word,ENTER 鍵不會移動到下一個表單欄位,但改為插入段落標記,未受保護的文件中一樣。這可讓您在 [文字表單欄位中輸入多行文字。
巨集
以下是四個的 Visual Basic for Applications,您可以模擬 Word 6.0,ENTER 鍵,新範本為基礎的受保護的表單欄位文件中的 Windows 功能一起使用的巨集。以下是功能的每個巨集的簡短描述:
-
第一個巨集會將插入點移至下一個表單欄位。
-
第二個巨集指派第一個巨集,ENTER 鍵。
-
第三個巨集可確保當您開啟表單範本基礎的未來的文件時,會繼續重要的功能。
-
第四個的巨集從 ENTER 鍵,還原預設的功能 ENTER 鍵中移除指定的巨集。
重要: 這個工作所寫的程式碼,範本應該不會受到保護。如果範本受到保護,您會收到下列錯誤訊息:
無法修改內容。
要取消保護的範本,請依照下列步驟執行:
-
開啟包含本文中所述的巨集的範本。
-
在 [工具] 功能表上按一下 [解除文件。
-
按一下 [檔案] 功能表的 [儲存]。
-
在 [檔案] 功能表上按一下 [關閉]。
第一個巨集: 將插入點移到下一個表單欄位
此巨集會將插入點移至下一個表單欄位。如果目前的表單欄位中的文件的最後一個,它會將插入點移至第一個表單欄位中。
此巨集使用書籤集合擷取目前的表單欄位的名稱。每個表單欄位的名稱也是插入表單欄位的書籤的名稱。如果您有任何其他的書籤在文件中時,您可能必須加入更多程式碼來處理潛在的錯誤。巨集也會假設文件中的所有表單欄位,都允許使用者輸入。如果這不是此情況下您的文件中,您需要在巨集中加入其他程式碼。
巨集,就會查看是否目前這一節受保護或解除保護然後將移至下一個表單欄位 (位於受保護的區段) 或插入段落標記 (位於未受保護的區段)。這項功能是必要的包含這兩個區段保護表單輸入和未受保護的文件區段。
Sub EnterKeyMacro()
' Check whether the document is protected for forms
' and whether the protection is active.
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields And _
Selection.Sections(1).ProtectedForForms = True Then
' Retrieve the bookmark of the current selection.
' This is equivalent to the name of the form field.
myformfield = Selection.Bookmarks(1).Name
' Go to the next form field if the current form field
' is not the last one in the document.
If ActiveDocument.FormFields(myformfield).Name <> _
ActiveDocument.FormFields(ActiveDocument.FormFields.Count) _
.Name Then
ActiveDocument.FormFields(myformfield).Next.Select
Else
' If the current form field is the last one,
' go to the first form field in the document.
ActiveDocument.FormFields(1).Select
End If
Else
' If the document is not protected for forms,
' insert a tab stop character.
Selection.TypeText Chr(13)
End If
End Sub
第二個巨集: 指定的 EnterkeyMacro 巨集,ENTER 鍵
此巨集將 ENTER 鍵,藉此匹配的索引鍵的函式,它用於受保護的文件表單欄位時,附加 EnterKeyMacro 巨集。當您在自訂的範本中使用此巨集時,其命名為 AutoNew。這會變更 ENTER 鍵,在所有新表單文件範本為基礎的功能。
Sub AutoNew()
' Do Not protect the template containing these macros.
CustomizationContext = ActiveDocument.AttachedTemplate
' Bind the ENTER key to the EnterKeyMacro.
KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyReturn), _
KeyCategory:=wdKeyCategoryMacro, Command:="EnterKeyMacro"
' Reprotect the document with Forms protection.
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End Sub
第三個巨集: 指定的 AutoOpen 巨集,ENTER 鍵
加入下列程式碼的 AutoOpen 巨集。如此一來,可確保當您開啟表單範本基礎的未來的文件時,會繼續重要的功能。
Sub AutoOpen()
' This macro will reassign the ENTER key when you open an existing
' Word form fields document.
CustomizationContext = ActiveDocument.AttachedTemplate
' Bind the Enter key to the EnterKeyMacro.
KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyReturn), _
KeyCategory:=wdKeyCategoryMacro, Command:="EnterKeyMacro"
End Sub
附註: 執行這些巨集可能會停用某些功能,例如自動校正] 與自動圖文集],而且可能會影響其他功能,取決於是否能正常運作的 ENTER 鍵。您需要執行第四個的巨集,以還原預設的功能 ENTER 鍵,或重新啟動 Microsoft Word。
第四個的巨集: 移除指定給 [ENTER 鍵的指令
此巨集將還原預設的功能 ENTER 鍵。當您在自訂的範本中使用此巨集時,其命名為 AutoClose。
Sub AutoClose()
CustomizationContext = ActiveDocument.AttachedTemplate
FindKey(KeyCode:=BuildKeyCode(wdKeyReturn)).Disable
' Disables prompt to save template changes.
Templates(1).Save
End Sub
附註: [ CustomizationContext ] 屬性設定會儲存,在此範本會附加到使用中文件的情況下鍵盤自訂的位置。
參考
如需其他有關建立自訂的解決方案和 Microsoft Word 2000 使用 Visual Basic for Applications 的可用資源的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
212623 WD2000: 巨集程式設計資源
226118 OFF2000: 程式設計的 Visual Basic for Applications 資源