Word自动空白页设置技巧让您无可匹敌

Word支持多种分节符 , 如图一 , 其中两种分节符会在必要时自动插入空白页 。 例如 , 如果文档中插入了一个“奇数页”分节符 , 而上一节又在奇数页结束 , 则Word会自动插入一个空白的偶数页 , 使得下一节又属于一个新的奇数页 。
但通过这两种分节符自动插入的空白页都存在同样的缺点——它插入的是一个完全空白的页 , 连页眉/页脚都自作主张地省略了 。 在实际应用中 , 自动生成的空白页如果也有普通拥有的页眉/页脚 , 或者包含“(本页空白)”之类的文字 , 整个文档看起来就更规范一些 。 但这些问题单纯依靠Word的分节符来自动插入空白页是无法解决的 。

Word自动空白页设置技巧让您无可匹敌

文章插图

图一

解决这个问题办法很多 。 第一种办法最简单 , 但比较繁琐 , 属于“笨办法” , 针对只需加入页眉/页脚的空白页:人工检视文档 , 在必要的地方(也即空白页)插入一些不可见的文本 。 所谓不可见的文本 , 就是将普通文本的颜色设置成和底色一样 , 一般是白色 。 这样 , 打印时空白页上不会看到这些文本 , 不过Word不会考虑到这一点 , 仍会象对待正常页那样在这个“空白”页上打印页眉/页脚 。
如果要加入“(本页空白)”之类的文字 , 一种比较好的办法是利用域构造标准的“节终结文本” 。
首先创建一个AutoText自动图文集 , 使它包含要打印在空白页上的文字 , 并在自动图文集的开始位置插入一个分页符 。 为该自动图文集词条指定适当的名称 , 例如BLANKPAGE 。 接下来 , 在每一个节的终结处 , 紧靠分节符之前 , 加入下面的复合域(如图二):{if{=int({page}/2)*2}={page}""{autotext"BLANKPAGE"}} 。
这组域代码判断当前的页号是奇数还是偶数 , 根据判断结果决定是否插入名为BLANKPAGE的自动图文集词条 。

Word自动空白页设置技巧让您无可匹敌

文章插图

图二


注意域代码中的花括号(“{”和“}”)是域的标记 , 不能用输入普通文字的方法输入 , 每一对花括号必须按一次Ctrl+F9输入 。
如果你经常要执行类似的操作 , 那么最好的办法还是利用Word宏 。 下面的CheckSecPages宏遍历当前文档 , 对于文档的每一节 , 计算该节包含的页数 , 然后判断页数的奇偶性 , 必要时插入分页符 。
SubCheckSecPages()
DimiSecAsInteger
DimoRngAsRange
DimiValueAsInteger
WithActiveDocument
'依次处理文档的每一节(最后一节除外)
ForiSec=1To.Sections.Count-1
'创建区域(Range)对象
SetoRng=.Sections(iSec).Range
'将该区域折叠
'(折叠之后起始位置和结束位置相同)
oRng.CollapsewdCollapseStart
'插入一个SectionPages域 。
'SectionPages域表示一节中的总页数
.Fields.AddRange:=oRng,Type:=wdFieldSectionPages
'将SectionPages的值除以2 。 如果余数为0 , 则当前节的页数是
'偶数——这就是我们要用“奇数页”分节符达到的效果
If(.Sections(iSec).Range.Fields(1).ResultMod2)<>0Then
'如果页数是奇数 , 则在节的分节符之前
'插入一个分页符
SetoRng=.Sections(iSec).Range
WithoRng
.CollapseDirection:=wdCollapseEnd
.MoveEndunit:=wdCharacter,Count:=-1
.InsertBreakType:=wdPageBreak
EndWith
EndIf
'删除前面创建的SectionPages域
.Sections(iSec).Range.Fields(1).Delete
NextiSec
EndWith
EndSub

在Word中 , 按Alt+F11打开VisualBasic宏编辑器 , 输入CheckSecPages宏的完整代码 , 如图三 。 完成后保存 , 关闭宏编辑器返回Word 。 以后 , 只要运行CheckSecPages宏就可以自动设置空白页 , 非常方便 。

Word自动空白页设置技巧让您无可匹敌

文章插图

【Word自动空白页设置技巧让您无可匹敌】 图三

    推荐阅读