Không bao giờ lưu Mẫu Word?


0

Có cách nào để không bao giờ lưu mẫu trong Word không? Chúng tôi có rất nhiều mẫu mà chúng tôi sử dụng để tạo tài liệu tiêu chuẩn. Khi một tài liệu dựa trên một trong các mẫu này được đóng lại, người dùng sẽ được hỏi liệu họ có muốn lưu các thay đổi đối với mẫu không. Tôi đã viết một macro ngăn chặn điều này, nhưng chỉ khi tài liệu chính được lưu ngay trước khi đóng. Có cách nào để ngăn chặn mẫu được lưu / thay đổi từ một tài liệu dựa trên nó không?


1
đây không phải là về lập trình mà là sử dụng các sản phẩm microsoft.
Gung Foo

Có lẽ tôi nên được cụ thể hơn. Có cách nào để kích hoạt macro dựa trên sự kiện lưu xảy ra khi người dùng đóng tài liệu và được nhắc lưu không? Macro trên sự kiện lưu của tôi dường như kích hoạt khi người dùng nhấp vào lưu. Ngoài ra, có một mẹo để sử dụng sự kiện đóng để kích hoạt macro?

Thảo luận này có thể hữu ích: support.microsoft.com/kb/918064
burrowsrjl

Câu trả lời:


1

Tôi đã xem lại liên kết ở trên và nó dẫn tôi đến câu trả lời. Tôi đang tạo các tài liệu mới với một macro tải mẫu thích hợp. tôi vừa thêm hai dòng vào macro:

ActiveDocument.AttachedTemplate.Saved=True
ActiveDocument.AttachedTemplate=""

Dòng đầu tiên làm cho mẫu có vẻ được lưu (để người dùng không được nhắc). Dòng thứ hai phá vỡ kết nối đến mẫu. (cái này đặt mẫu liên quan thành "Bình thường".

Đây dường như là một giải pháp tốt để đảm bảo rằng người dùng không bao giờ vô tình lưu bất kỳ thay đổi định dạng nào trở lại mẫu chính.


0

Không có cài đặt để chặn lời nhắc, nhưng VBA có thể làm điều đó.

Trong trình chỉnh sửa macro, chọn dự án Bình thường và nhấp vào Chèn & gt; Mô-đun lớp. Trong ngăn Thuộc tính, thay đổi tên của mô-đun lớp thành EventClassModule. (Nếu bạn không thấy ngăn Thuộc tính, hãy nhấn F4 hoặc bấm Xem & gt; Cửa sổ Thuộc tính.)

Trong cửa sổ mã cho mô-đun lớp, dán mã này:

Public WithEvents App As Word.Application

Private Sub App_DocumentBeforeSave(ByVal Doc As Document, _
        SaveAsUI As Boolean, Cancel As Boolean)
    If Doc Is ActiveDocument And ActiveDocument.AttachedTemplate <> ActiveDocument Then
        Doc.AttachedTemplate.Saved = True ' avoid saving template
    End If
End Sub

Cũng trong dự án Bình thường, thêm một mô-đun thông thường (Chèn & gt; Mô-đun) và thêm mã này vào nó:

Dim X As New EventClassModule

Sub AutoExec()
    Set X.App = Word.Application
End Sub

Sub AutoExit()
    Set X = Nothing
End Sub

Tác giả: Jay Freedman Nguồn: http://answers.microsoft.com / en-us 731a9105a5a8

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.