VBScript/VBA设置Word文档的页眉或页脚

!本文可能 超过1年没有更新,今后内容也许不会被维护或者支持,部分内容可能具有时效性,涉及技术细节或者软件使用方面,本人不保证相应的兼容和可操作性。

由于工作需要我们常常需要批量设置Word文档的页眉或者页脚,除了递归遍历Word文件外,我们还需要借助Word.Application组件来实现页眉或页脚的增加或修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Option Explicit
 
Const MSWORD_FILENAME = "Word文件路径"
 
Const wdSeekCurrentPageFooter = 10
Const wdAlignParagraphCenter = 1
Const wdAlignParagraphRight = 2
Const wdSeekMainDocument = 0
 
Dim wdApp
Set wdApp = WSH.CreateObject( "Word.Application")
wdApp.visible = False
 
Set doc = wdApp.Documents.Open(MSWORD_FILENAME)
doc.Activate ' 激活打开的文档
doc.PageSetup.FooterDistance = 30 ' 设置页脚到页面底边的距离
 
' 定位到页脚
wdApp.ActiveWindow.ActivePane.View.SeekView _
 = wdSeekCurrentPageFooter
' 下面是针对字体的设置
wdApp.Selection.Font.Name = "Times New Roman"
wdApp.Selection.Font.Size = 14 ' 字号
wdApp.Selection.Font.Bold = True ' 加粗
wdApp.Selection.Text = "页脚0001"  ' 页脚文本
' 页脚文本的位置wdAlignParagraphRight为居右
wdApp.Selection.ParagraphFormat.Alignment _
 = wdAlignParagraphRight
' 返回定位到主文档
wdApp.ActiveWindow.ActivePane.View.SeekView _
 = wdSeekMainDocument
 
doc.Save ' 保存刚才的修改
doc.Close ' 关闭文档
Set doc = Nothing
 
wdApp.visible = True
wdApp.Quit
Set wdApp = Nothing

这里要注意的是设置页脚到底边距离的时候需要用到页面设置的功能,即PageSetup.FooterDistance。

若无特别说明,本网站文章均为原创,原则上这些文章不允许转载,但是如果阁下是出于研究学习目的可以转载到阁下的个人博客或者主页,转载遵循创作共同性“署名-非商业性使用-相同方式共享”原则,请转载时注明作者出处谢绝商业性、非署名、采集站、垃圾站或者纯粹为了流量的转载。谢谢合作!

  1. Option Explicit

    Const MSWORD_FILENAME = “D:\My Documents\2011年度专业技术资格委托评审.doc” ‘Word文件路径”???想改为变量

    Const wdSeekCurrentPageFooter = 10
    Const wdAlignParagraphCenter = 1
    Const wdAlignParagraphRight = 2
    Const wdSeekMainDocument = 0
    Sub WSH()
    Dim wdApp ‘WSH出错,提示缺少变量
    Set wdApp = WSH.CreateObject(“Word.Application”)
    wdApp.Visible = False

    Set doc = wdApp.Documents.Open(MSWORD_FILENAME)
    doc.Activate ‘ 激活打开的文档
    doc.PageSetup.FooterDistance = 30 ‘ 设置页脚到页面底边的距离

    ‘ 定位到页脚
    wdApp.ActiveWindow.ActivePane.View.SeekView _
    = wdSeekCurrentPageFooter
    ‘ 下面是针对字体的设置
    wdApp.Selection.Font.Name = “Times New Roman”
    wdApp.Selection.Font.Size = 14 ‘ 字号
    wdApp.Selection.Font.Bold = True ‘ 加粗
    wdApp.Selection.Text = “页脚0001” ‘ 页脚文本
    ‘ 页脚文本的位置wdAlignParagraphRight为居右
    wdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
    ‘ 返回定位到主文档
    wdApp.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

    doc.Save ‘ 保存刚才的修改
    doc.Close ‘ 关闭文档
    Set doc = Nothing

    wdApp.Visible = True
    wdApp.Quit
    Set wdApp = Nothing
    End Sub
    1、Const MSWORD_FILENAME = “D:\My Documents\2011年度专业技术资格委托评审.doc” ‘Word文件路径”???想改为变量
    2、’WSH出错,提示缺少变量
    Set wdApp = WSH.CreateObject(“Word.Application”)
    3、’我也想在excel中用vba设置doc文件页脚页码??Dim appWD As Word.Application
    Set appWD = CreateObject(“Word.Application”) ‘运行错误,提示类型不匹配?
    在办公室电脑运行正常;已引用了word控件,家中笔记本提示:active x 不能创建对象
    谢谢

    • 1、注意这行Set doc = wdApp.Documents.Open(MSWORD_FILENAME),你把MSWORD_FILENAME改成变量定义即可,比如这样的:

      Dim WordFileName
      WordFileName = "...你的Word文档"
      Set doc = wdApp.Documents.Open(WordFileName)

      2、注意在Windows Script Host环境下,WSHWScript都是等同保留的宿主对象,不建议用作Sub过程名,所以建议将Sub WSH()的WSH改为其他名字。
      3、在Excel VBA环境下可以直接使用Application而不需要CreateObject

请稍后...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*