Dianne想知道是否有一种方法可以创建一个模板,以排除引入的任何新样式。客户将具有格式和样式的材料粘贴到她的文档中,这可能会引起问题。

她想构建一个通用模板,该模板将创建将锁定非模板样式的文档。

这个问题已经困扰了Word用户多年(如果不是几十年的话)。您可以花费大量时间按照您想要的方式来获取模板和样式表,然后将其发送给其他人,以使其与样式表(和文档格式)一起以电子形式的破损物返回。

您可以采取几种方法来纠正这种情况。首先,您可以尝试“请不要那样做”的方法,您只需让其他人不要在文档中粘贴任何内容即可。或者,如果他们必须粘贴某些东西,请他们使用“选择性粘贴”变体之一,该变体允许粘贴而无需格式化。

如果您想要一种更强大的方法,请按照下列步骤操作:

。根据需要设置模板(包括样式)。

。将模板加载到Word中后,显示功能区的“主页”选项卡。

。单击“样式”组右下角的小图标。 Word在屏幕右侧显示“样式”窗格。

。在“样式”窗格的底部,单击“管理样式”图标。 (如果您不知道是哪个图标,则将鼠标指针依次悬停在每个图标上,直到看到工具提示“管理样式”。)Word显示“管理样式”对话框。

。确保选择了“限制”选项卡。 (请参见图1。)

。从对话框中列出的样式中,创建一组您希望用户使用的样式。 (通过单击样式名称,然后在单击其他样式名称时按住Ctrl键,可以创建选择集。)

。 7单击“将格式限制为允许的样式”复选框。

。单击确定。

。保存您的模板。

从理论上讲,任何基于模板的文档都会限制用户可以在其格式中使用的样式。尚不清楚的是,这是否还扩展到限制可以粘贴到文档中的样式。如果您喜欢这种方法的宏强制版本,则可以使用以下博客中详细介绍的宏:

http://blogs.msdn.com/b/ericwhite/archive/2010/01/27/programmatically-limiting-styles-in-word.aspx

当然,您可以创建一组宏,以防止人们将格式化的文本粘贴到文档中。 (将宏放在文档所基于的模板中,它们会自动传递到文档中。通常的警告:如果用户未启用宏,则这种方法几乎没有价值。)

例如,一种防止添加新样式的方法是确定粘贴前后的样式数量。如果数量增加,则您的宏可以撤消粘贴,并为用户提供以纯文本粘贴或取消粘贴到剪贴板的选项。此方法还将防止从表和文本框引入样式。

重要的是要意识到在VBA中没有可以捕获的“常规”粘贴事件。而是,必须自定义Word的多个内置命令。以下内容替换了其中四个命令。

Sub EditPaste()

Dim k As Long

Options.PasteFormatBetweenDocuments = wdMatchDestinationFormatting     Options.PasteFormatBetweenStyledDocuments = wdUseDestinationStyles     k = ActiveDocument.Styles.Count     Selection.Range.Paste     If k <> ActiveDocument.Styles.Count Then         ActiveDocument.Undo         MsgBox "Paste unsuccessful. You tried to introduce new styles."

End If End Sub
Sub EditPasteSpecial()

Dim k As Long     Dim lk As Boolean

Options.PasteFormatBetweenDocuments = wdMatchDestinationFormatting     Options.PasteFormatBetweenStyledDocuments = wdUseDestinationStyles     k = ActiveDocument.Styles.Count     With Dialogs(wdDialogEditPasteSpecial)

.Show         lk = .link     End With     If lk Then         ActiveDocument.Undo         MsgBox "You are not allowed to paste links"

Exit Sub     End If     If k <> ActiveDocument.Styles.Count Then         ActiveDocument.Undo         If MsgBox("You have tried to introduce new styles." & vbCrLf & _           "Do you want to paste as plain text?", vbYesNo) = vbYes Then _           Selection.Range.PasteSpecial datatype:=wdPasteText     End If End Sub
Sub PasteDestinationFormatting()

Dim k As Long

k = ActiveDocument.Styles.Count     Selection.Range.Paste     If k <> ActiveDocument.Styles.Count Then         ActiveDocument.Undo         MsgBox "Paste unsuccessful. You tried to introduce new styles."

End If End Sub
Sub PasteSourceFormatting()

MsgBox "You are not allowed to paste with source formatting"

End Sub

另一种非宏观方法是更改​​文档的保护。

将模板加载到Word中后,请按照下列步骤操作:

。单击“保护”组中的“限制编辑”工具。 Word在文档的右侧显示“限制编辑”窗格。

。在“格式设置限制”区域中,选中“将格式限制为样式选择”复选框。

。单击复选框下方的“设置”链接。 Word将显示“格式限制”对话框。 (请参见图2。)

。确保样式列表反映出您希望用户能够使用的样式。

。根据需要调整对话框底部的复选框。

。单击确定。 Word关闭“格式设置限制”对话框。

。如果您施加的限制引起了与文档中使用的样式的某些潜在冲突,Word将询问您要做什么。

(根据需要回答。)

。单击“是,开始执行保护”。 Word将显示“开始实施保护”对话框。

。如果需要,输入保护密码。 (您需要输入两次。)

。单击确定。

。关闭“限制格式和编辑”任务窗格。

。保存您的模板。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(12698)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。