Đối với phiên bản Microsoft Word 97 của bài viết này, hãy xem
187985.
Tóm tắt
Bài viết này chứa bốn Microsoft Visual Basic for Applications macro mà bạn có thể sử dụng để mô phỏng Microsoft Word 6.0 cho Windows chức năng của phím ENTER để di chuyển giữa các biểu mẫu trong tài liệu được bảo vệ.
Thông tin
Microsoft cung cấp mô hình lập trình để minh hoạ, không bảo hành hoặc rõ ràng hay ngụ ý, bao gồm nhưng không giới hạn, bảo đảm bán và/hoặc cho một mục đích cụ thể. Bài viết này giả định rằng bạn đã quen với ngôn ngữ lập trình được thể hiện và các công cụ được sử dụng để tạo và quy trình gỡ lỗi. Chuyên gia hỗ trợ của Microsoft có thể giúp giải thích các chức năng của một quy trình cụ thể, nhưng chúng sẽ không sửa đổi các ví dụ để cung cấp thêm chức năng hoặc xây dựng quy trình nhằm đáp ứng nhu cầu cụ thể của bạn.
Nếu bạn có giới hạn kinh nghiệm lập trình, bạn có thể muốn liên hệ với Microsoft Certified Partner hoặc dịch vụ tư vấn của Microsoft. Để biết thêm thông tin, hãy truy cập các Web site của Microsoft:
Đối tác được Microsoft Chứng nhận - https://partner.microsoft.com/global/30000104
Dịch vụ Microsoft Advisory - http://support.microsoft.com/gp/advisoryservice
Để biết thêm thông tin về các tuỳ chọn hỗ trợ sẵn có và làm thế nào để liên hệ với Microsoft, hãy ghé thăm Web site sau của Microsoft:http://support.microsoft.com/default.aspx?scid=fh; EN-US; CNTACTMS
Để biết thêm thông tin về việc chạy mã mẫu, bấm số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
212536 OFF2000: làm thế nào để chạy mã mẫu từ bài viết cơ sở kiến thức
Chức năng chính nhập từ 6.0
Word 6.0 dành cho Windows, nếu bạn nhấn phím ENTER trong tài liệu được bảo vệ cho biểu mẫu, điểm chèn sẽ di chuyển trường biểu mẫu tiếp theo. Phiên bản mới hơn của Word, phím ENTER không tới trường tiếp theo hình thức nhưng thay vào đó chèn dấu phân đoạn, cũng như trong tài liệu không được bảo vệ. Điều này cho phép bạn nhiều dòng văn bản vào trường văn bản biểu mẫu.
Macro
Dưới đây là bốn Visual Basic for Applications macro bạn có thể sử dụng cùng nhau để mô phỏng từ 6.0 cho Windows chức năng của phím ENTER mẫu bảo vệ trường tài liệu mới dựa trên một mẫu. Dưới đây là một mô tả ngắn gọn các chức năng của từng macro:
-
Macro đầu tiên di chuyển điểm chèn trường biểu mẫu tiếp theo.
-
Macro thứ hai đặt đầu tiên macro phím ENTER.
-
Macro thứ ba đảm bảo rằng các chức năng chính tiếp tục khi bạn mở tài liệu dựa trên khuôn mẫu trong tương lai.
-
Macro thứ tư loại bỏ được gán macro từ phím ENTER, khôi phục chức năng mặc định của phím ENTER.
Chú ý: mã này hoạt động như ghi, khuôn mẫu nên không được bảo vệ. Nếu khuôn mẫu được bảo vệ, bạn sẽ nhận được thông báo lỗi sau:
Ngữ cảnh không thể sửa đổi.
Để unprotect khuôn mẫu, hãy làm theo các bước sau:
-
Mở mẫu chứa macro được mô tả trong bài viết này.
-
Trên menu công cụ , bấm Unprotect tài liệu.
-
Trên menu tệp , bấm lưu.
-
Trên menu tệp , bấm đóng.
Đầu tiên Macro: Di chuyển điểm chèn trường biểu mẫu tiếp theo
Macro này di chuyển điểm chèn trường biểu mẫu tiếp theo. Nếu trường biểu mẫu hiện tại là cuối cùng trong tài liệu, nó di chuyển điểm chèn trường mẫu đầu tiên.
Macro này sử dụng bộ sưu tập đánh dấu để truy xuất tên trường mẫu hiện tại. Tên của mỗi trường mẫu là tên của một dấu chèn trường biểu mẫu. Nếu bạn có bất kỳ dấu khác trong tài liệu của bạn, bạn có thể phải thêm thêm mã ở đây để xử lý lỗi tiềm năng. Macro cũng giả định rằng tất cả các trường biểu mẫu trong tài liệu cho phép người dùng nhập. Nếu điều này không xảy ra trong tài liệu của bạn, bạn phải thêm các mã macro của bạn.
Macro kiểm tra xem xem phần hiện tại được bảo vệ hoặc không được bảo vệ và sau đó chuyển tới trường tiếp theo mẫu (trong một bảo vệ) hoặc chèn một dấu phân đoạn (trong một tình). Chức năng này là cần thiết cho các tài liệu có chứa cả hai phần được bảo vệ cho hình thức đầu vào và không được bảo vệ phần.
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
Macro thứ hai: Gán Macro EnterkeyMacro để các phím ENTER
Macro này coi EnterKeyMacro macro phím ENTER, do đó reprogramming chức năng phím khi sử dụng biểu mẫu tài liệu được bảo vệ. Khi bạn sử dụng macro này một khuôn mẫu tuỳ chỉnh, đặt tên là AutoNew. Thay đổi chức năng phím ENTER, tất cả tài liệu mẫu mới dựa trên khuôn mẫu.
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
Macro thứ ba: Gán Macro AutoOpen để các phím ENTER
Thêm một macro AutoOpen với mã sau. Điều này đảm bảo rằng các chức năng chính tiếp tục khi bạn mở tài liệu dựa trên khuôn mẫu trong tương lai.
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
Lưu ý: chạy các macro có thể vô hiệu hoá một số tính năng như tự sửa văn bản tự động, và có thể ảnh hưởng đến các tính năng phụ thuộc vào phím ENTER để hoạt động đúng. Bạn phải chạy macro 4 để khôi phục chức năng mặc định của phím ENTER hoặc khởi động Microsoft Word.
Macro thứ tư: Xóa lệnh gán các phím ENTER
Macro này khôi phục chức năng mặc định của phím ENTER. Khi bạn sử dụng macro này một khuôn mẫu tuỳ chỉnh, tên tự.
Sub AutoClose()
CustomizationContext = ActiveDocument.AttachedTemplate
FindKey(KeyCode:=BuildKeyCode(wdKeyReturn)).Disable
' Disables prompt to save template changes.
Templates(1).Save
End Sub
Chú ý: nhà CustomizationContext đặt vị trí bàn phím tùy chỉnh ở đâu được lưu trong trường hợp này, mẫu đính kèm vào tài liệu hiện hoạt.
Tham khảo
Để biết thêm thông tin về các tài nguyên sẵn có để tạo các giải pháp tùy chỉnh bằng cách sử dụng Visual Basic cho ứng dụng và Microsoft Word 2000, bấm số bài viết sau đây để xem bài viết trong cơ sở kiến thức Microsoft:
212623 WD2000: Macro chương trình tài nguyên
226118 OFF2000: tài nguyên lập trình Visual Basic for Applications