Word文档结构图内容“越界”问题
如果经常需要使用Microsoft Office Word软件撰写几百上千页的长文档,一种比较好的文档浏览方式是利用文档结构图。通过使用该功能,在Word窗口左侧的结构图列表中,可以看到一个类似“目录”的导航结构,直接单击就可以跳跃到文档中的任何位置。
正常情况下,在文档结构图中,理论上只能出现应用了具有层次结构的样式后的内容。例如在撰写文字时,对某些行应用了“标题1”、“标题2”、“标题3”这样的样式后,对应的内容才能显示在文档结构图中。其实这就像是书籍的章节编号,第一章、第1节,第1.1节,以此类推。
但是,最近我遇到一个非常奇怪的问题。在翻译一本书时,发现文档结构图中会无规律出现一些被应用了“正文”样式或其他基于正文样式的样式的文字。这句话比较绕口,还是看图说话吧。
在上图中,左侧的文档结构图窗口内,用黄色底色突出显示的都是应用了“代码”这一样式的文本,“代码”样式是基于正文的,并且不像“标题1”、“标题2”它们具有层次结构,按理说不应该出现在文档结构图中。另外,绿色突出显示的完全就是应用了“正文”样式的内容,更是不应该出现在文档结构图中。但它们都出现了。
不仅如此,如果使用Word的引用功能针对文稿内容插入目录,在目录中也会出现这些黄色和绿色突出显示的内容:
奇怪之处不止如此,更怪异的是,每次打开这个文稿时,“越界”显示的内容是不一样的。例如,这次打开时“越界”的是某某内容,当关闭文档重新打开后,原本的“某某”内容在结构图中消失了,但其他内容又出现在这里。
咨询专家后发现,这是一个已经被确认的问题。Windows平台下,Word 2003之前的版本都有这个问题,但Word 2003中已经成功解决。用Word 2003时候我的Word应用水平还不高,还没用过这么强大的功能,所以我不知道当时问题是否真的已经解决。但如果真的已经解决,为什么在Word 2007中再次出现?
上面那个链接中给出了三种方法,我觉得第三种,应用宏的方法是最简单的。只需要编辑下列内容的宏,然后针对有问题的文档运行一次,所有“越界”的内容就会恢复正常,并且至截至目前,还没有发现再犯。
Sub ReSetOutline()
Dim myPara As Paragraph
For Each myPara In ActiveDocument.Paragraphs
myPara.OutlineLevel = myPara.style.ParagraphFormat.OutlineLevel
Next myPara
End Sub
看来宏也是个好东西,很强大,有机会要仔细研究一下