Nhiều người sử dụng Word để tạo biểu mẫu sau đó được người khác sử dụng để nhập thông tin. Tôi không nói về các biểu mẫu trung bình của bạn được in ra và sao chép trên máy photocopy. Tôi đang nói về việc sử dụng biểu mẫu với các trường biểu mẫu đặc biệt của Word để tạo mẫu được sử dụng làm cơ sở cho các tài liệu thu thập dữ liệu được lưu riêng với dữ liệu tại chỗ.

Theo thiết kế, các biểu mẫu này được bảo vệ. Điều này có thể vừa tốt vừa xấu. Nó tốt vì nó ngăn người dùng thay đổi thông tin mà họ không nên. Điều đó thật tệ vì nó ngăn bạn thay đổi bất kỳ thông tin nào bạn có thể muốn. Điều xảy ra là khi người dùng tạo tài liệu dựa trên mẫu biểu mẫu, thông tin họ đưa vào các trường biểu mẫu sẽ được lưu trong một tài liệu mới. Nếu bạn tải lại tài liệu đã lưu, mở khóa biểu mẫu để thêm trường mới hoặc thực hiện một số thay đổi khác, sau đó khóa lại biểu mẫu trước khi lưu, thông tin người dùng thêm vào biểu mẫu sẽ tự động bị Word loại bỏ và tất cả các trường biểu mẫu đều đặt trở lại mặc định của họ.

Tin hay không tùy bạn, đây là một tính năng của Word. Một số người sẽ đặt câu hỏi về đặc điểm đó, nhưng đó là cách tính năng của biểu mẫu được thiết kế bởi các quyền hạn. Cách duy nhất để khắc phục vấn đề này là thông qua việc sử dụng macro. Vị trí tự nhiên để lưu macro là trong mẫu mà biểu mẫu của bạn dựa trên đó. Bạn có thể sẽ muốn macro có sẵn thông qua nút trên thanh công cụ tùy chỉnh hoặc lệnh menu tùy chỉnh.

(Thêm macro vào thanh công cụ và menu được đề cập trong các vấn đề khác của WordTips.)

Hãy nhớ rằng vấn đề chỉ xuất hiện khi khóa lại một biểu mẫu; mở khóa chúng không gây mất dữ liệu. Do đó, bạn chỉ cần sử dụng một macro đặc biệt để khóa lại biểu mẫu của mình và bạn có thể sử dụng công cụ mở khóa thông thường trong Word để bỏ bảo vệ biểu mẫu trước khi thay đổi. Macro sau sẽ khóa lại các biểu mẫu đã mở khóa của bạn một cách an toàn:

Sub SafeFormLock()

If ActiveDocument.ProtectionType = wdNoProtection Then         ActiveDocument.Protect _           Password = "" _           Type:=wdAllowOnlyFormFields, _           NoReset:=True     End If End Sub

Lý do cho việc kiểm tra If …​ Then là VBA sẽ tạo ra lỗi nếu bạn sử dụng phương pháp bảo vệ trên tài liệu đang hoạt động và nó đã được bảo vệ. Cũng lưu ý rằng macro này không đặt mật khẩu bảo vệ. Nếu bạn muốn sử dụng mật khẩu, bạn sẽ cần phải cung cấp mật khẩu đó trong macro.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên các trang WordTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

WordTips là nguồn của bạn để đào tạo Microsoft Word hiệu quả về chi phí.

(Microsoft Word là phần mềm xử lý văn bản phổ biến nhất trên thế giới.) Mẹo này (1570) áp dụng cho Microsoft Word 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Word (Word 2007 và sau này) tại đây: