一个例子入门word宏和word VBA

使用word的宏操作和VBA代码可以实现一些常用操作的自动化,从而大大提高工作的效率。

1 先来一个用word VBA代码建立宏的例子

1.1 显示“开发工具”选项卡

Office按钮→Excel选项→“常用”选项卡→勾选:在功能区显示“开发工具”选项卡;

1.2 启用“宏”

“开发工具”选项卡→宏安全性→勾选:启用所有宏;

1.3 新建宏

“开发工具”选项卡→Visual Basic→插入→模块→在代码窗口粘贴代码。

(先不管代码是怎样写的,用拿来主义,同样,一些常见的代码也可以到网上去找。)

Sub 设置页眉页脚页边距和段落()

If ActiveWindow.View.SplitSpecial <> wdPaneNone Then ActiveWindow.Panes(2).Close

With ActiveWindow.ActivePane.View

.Type = wdPrintView

.SeekView = wdSeekCurrentPageHeader

Selection.WholeStory

Selection.Delete unit:=wdCharacter, Count:=1

'Selection.TypeText Text:="这是替换后的页眉"

With ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary)

Set rng = .Range

rng.Text = "第 "

rng.Collapse wdCollapseEnd

ActiveDocument.Fields.Add rng, wdFieldPage, "Page"

Set rng = .Range

rng.Collapse wdCollapseEnd

rng.Text = " 页 / 共 "

rng.Collapse wdCollapseEnd

ActiveDocument.Fields.Add rng, wdFieldNumPages, "Pages"

Set rng = .Range

rng.Collapse wdCollapseEnd

rng.Text = " 页 "

.Range.Fields.Update

.Range.ParagraphFormat.Alignment = wdAlignParagraphRight

'隐藏页眉的横线;

.Range.Borders(wdBorderBottom).Visible = False

End With

.SeekView = wdSeekMainDocument

End With

WordBasic.ViewFooterOnly

Selection.WholeStory

Selection.Delete unit:=wdCharacter, Count:=1

'Selection.TypeText Text:="这是替换后的页脚"

Dim GetDocName

GetDocName = Left$(ActiveDocument.Name, Len(ActiveDocument.Name) - 4)

With ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary)

Set rng = .Range

rng.Text = GetDocName

rng.Collapse wdCollapseEnd

Set rng = .Range

rng.Collapse wdCollapseEnd

rng.Text = " 第 "

rng.Collapse wdCollapseEnd

ActiveDocument.Fields.Add rng, wdFieldPage, "Pages"

Set rng = .Range

rng.Collapse wdCollapseEnd

rng.Text = " 页 / 共 "

rng.Collapse wdCollapseEnd

ActiveDocument.Fields.Add rng, wdFieldNumPages, "Pages"

Set rng = .Range

rng.Collapse wdCollapseEnd

rng.Text = " 页 "

.Range.Fields.Update

.Range.ParagraphFormat.Alignment = wdAlignParagraphRight

End With

ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

' 设置页面边距和页眉页脚边距

With ActiveDocument.PageSetup

.TopMargin = CentimetersToPoints(1.5)

.BottomMargin = CentimetersToPoints(1.7)

.LeftMargin = CentimetersToPoints(1.7)

.RightMargin = CentimetersToPoints(1.5)

.HeaderDistance = CentimetersToPoints(1)

.FooterDistance = CentimetersToPoints(1.2)

End With

ActiveWindow.ActivePane.VerticalPercentScrolled = 0

'设置段落格式,段后间距0.5行

Selection.WholeStory

With Selection.ParagraphFormat

.LineUnitAfter = 0.5

End With

Selection.HomeKey unit:=wdStory, Extend:=wsExtend

End Sub

至此已在word文档内新建了一个过程,过程名为“设置页眉页脚页边距和段落”;

1.4 运行宏

关闭代码窗口,回到word文档→“开发工具”选项卡→宏→选择宏:“创建工作表目录”→执行;

1.5 保存宏

文件→另存为→保存类型:启用宏的word文档→确定;(文件扩展名为docm)

1.6 让每一个word文档都可以运行建立的宏

上述建立的宏只能运行在当前文档,如果要让每一个word文档都可以运行建立的宏中,则需要将上述代码保存到Normal文档,具体操作如下:

“开发工具”选项卡→宏→Visaul Basic→左侧单击Normal工程→插入→模块→将上述的代码复制到右边的代码窗口。一个例子入门word宏和word VBA

(Excel对应的是VBAProject(Personal.xlsb)

2 宏和基本操作

宏是能够将用户的操作过程记录下来,并自动将所记录的操作转换成为VBA程序代码,然后这些代码可以由Excel解释执行。

2.1 录制宏

“开发工具”选项卡→录制宏→宏名:“初始化”→确定→进行需要的操作…→“开发工具”选项卡→停止录制。

2.2 查看录制的宏

“开发工具”选项卡→宏→选择:“初始化”→编辑;

2.3 运行宏

选择其它工作表→“开发工具”选项卡→宏→选择:“初始化”→执行;

3 word VBA

VBA是Visual Basic application的缩写,是word的宏语言。用VBA编写的脚本由word解释执行。如上述的宏就是一堆VBA代码。

录制的宏只能机械地记录操作。而使用判断、循环等控制语句是VBA的优势所在,也是其功能强大的原因。

-End-