当收到别人发过来的word文档时,经常能看到在样式列表中存在非常多的自定义样式。这些非内置的自定义样式,有的来自从其他地方复制过来的,也有的是自己定义的。当文档经过多人编辑后,有可能样式就泛滥成灾。让后续编辑痛不欲生。
可以看到,大量的自定义(其实没几个是有用的)将常用的内置样式已经完全淹没。后续编辑者想在样式列表中找个内置样式,那是相当痛苦的事情。遇到这种情况,想辨别哪个样式有用哪个样式无用的时间成本非常高。不如痛快一点,一次将非内置样式全部清除。
下面提供两种方法:一种是通过界面菜单删除;一种是通过代码删除。
方案一:通过界面菜单删除
点击工具栏样式列表框右下角的箭头,弹出样式管理界面。然后在下方点击“管理样式”按钮,进入管理样式窗口。
在此界面,可以看到有非常多的莫名其妙的样式。选中某一个样式,点击右侧的“删除”是可以将其删除的。但逐条删除实在是太慢了。
选择第1条样式,然后下翻到最后一条样式,按住shift同时鼠标点击最后一条样式。这样就可以全选所有样式。注意:在这里没办法使用我们常用的ctrl+a来全选的。
此时,word就开始删除所有的样式。但由于刚才是全选了样式,所以是包含内置样式的。而内置样式无法被删除,因此就会弹窗提示。这个没什么影响,确认即可。因为有多个内置样式,所以需要确认多次。直到所有确认完毕后,非内置样式全部被清除。
方案二:VBA代码删除(推荐)
第一次内置的删除方法虽然比较简单,但需要多次确认。而使用vba代码则可以避免这个烦恼。
在word界面按ALT+F11,进入VBA编辑窗口。点击菜单“插入”,选择“模块”
Sub DeleteCustomStyles() Dim sty As Style Dim i As Integer ' 为了防止删除过程中报错,忽略错误 On Error Resume Next ' 建议在运行前先备份文档 If MsgBox("此操作将删除所有自定义样式,建议先备份文档。是否继续?", vbYesNo + vbExclamation) = vbNo Then Exit Sub ' 遍历所有样式 For Each sty In ActiveDocument.Styles ' 如果样式不是内置样式 (BuiltIn = False) If sty.BuiltIn = False Then ' 删除该样式 sty.Delete End If Next sty MsgBox "清理完成!自定义样式已删除。", vbInformationEnd Sub
至此,自动删除非内置样式就完成了。比方案一少按很多确认键。更高效。