您现在的位置: 飞速资源网文章中心电脑教学Word教程自动完成Word 日常任务

自动完成Word 日常任务

飞速资源网| http://www.ff70.com |Word教程|人气:557次| 06-11
自动完成Word 日常任务


    利用VBA 编程,可以使许多日常的任务自动完成,使用户的工作 更有效率。

11.7.1 在启动时显示打开对话框
    一般情况下启动Word,Word 会认为是创建一个新文档。如果只 是想打开一个旧文档进行编辑,在Word 启动时显示【打开】对话框 可以节省许多时间。为此,可以创建生成一个宏。

Public Sub openfile()
'建立一个宏,使在Word 启动时运行该宏
Dialogs(wdDialogFileOpen).Show
End Sub
    
    将此代码加入模板中。为了使Word 每次启动时自动执行该宏, 用鼠标右键单击桌面上Word 的快捷方式图标,显示其快捷方式属性, 将“/m OpenFile”加入到“开始”路径中。这里运用了一个小技巧: 用“/m”加入“开始”路径以防止其他宏在启动时运行。当怀疑被 Word 宏病毒感染时,也可以利用加“/m”的方法来进行。

11.7.2 为文字设置格式
    下面的代码使用 Selection 属性来为选定的文字应用字符和段 落格式。使用 Font 属性可获得字体格式属性和方法,使用 Microsoft Word 对象属性可访问段落格式属性和 方法。

With Selection.Font
.Name = "Times New Roman"
.Size = 14
.AllCaps = True
End With
With Selection.ParagraphFormat
.LeftIndent = InchesToPoints(0.5)
.Space1
End With

11.7.3 将格式应用于某一范围
    下面的代码定义一个 Range 对象MyRange,该对象引用活动文档 的前三个段落。通过使用 Font 属性和 ParagraphFormat 对象可以 编排Range(myRange)的格式。

Set myRange = ActiveDocument.Range
( Start:=ActiveDocument.Paragraphs ( 1 ) .Range.Start, _
End:=ActiveDocument.Paragraphs(3).Range.End)
With myRange
.Font.Name = "Arial"
.ParagraphFormat.Alignment = wdAlignParagraphJustify
End With

11.7.4 插入文字并应用字符和段落格式
    下面的代码在当前文档的顶部添加单词【标题】。第一段居中对 齐,在该段落之后添加了半英寸的间距。【标题】设为 24 磅的【宋 体】字体。

Set oRange = ActiveDocument.Range(Start:=0, End:=0)
With oRange
.InsertAfter Text:="标题"
.InsertParagraphAfter
.Font.Name = "宋体"
.Font.Size = 24
End With
With ActiveDocument.Paragraphs(1)
.Alignment = wdAlignParagraphCenter
.SpaceAfter = InchesToPoints(.5)
End With

    下面的代码切换所选内容第一段的段前间距。该宏检索当前的段 前间距值,如果该值是 12 磅,则删除段前间距(将SpaceBefore 属性设置为0)。如果段前间距不是 12,则将 SpaceBefore 属性设 置为 12 磅。

Set oParagraph = Selection.Paragraphs(1)
If oParagraph.SpaceBefore = 12 Then
oParagraph.SpaceBefore = 0
Else
oParagraph.SpaceBefore = 12
End If

    下面的代码切换选定文字的加粗格式。
    Selection.Font.Bold = wdToggle
    下面的代码将左边距增加 0.5 英寸。PageSetup 对象包含文档 的所有页面设置属性(左边距、下边距、纸张大小,等等)。LeftMargin 属性用来返回并设置左边距。

iMargin = ActiveDocument.PageSetup.LeftMargin
iMargin = iMargin + InchesToPoints(0.5)
ActiveDocument.PageSetup.LeftMargin = iMargin

11.7.5 编辑文字
    日常工作中,处理文字是最经常用到的事情,本节介绍如何利用 VBA 编程实现编辑文字的自动化。当然,用户最好是利用录制宏的办 法把代码转换为VBA 代码后再修改,这样效率高,又不容易出错。

11.7.5.1 从文档返回文本
    使用Text 属性可以返回Range 或 Selection 对象中的文本。下 面的代码选定下一个格式设为【标题1】样式的段落。然后通过 MsgBox 函数显示 Text 属性的内容。

With Selection.Find
.ClearFormatting
.Style = wdStyleHeading1
.Execute FindText:="", Format:=True, Forward:=True,
Wrap:=wdFindStop
If .Found = True Then MsgBox Selection.Text
End With

    下面的指令返回选定文本:
    strText = Selection.Text
    下面的代码返回活动文档的第一个单词。Words 集合中的每一项 是一个 Range 对象,该对象代表一个单词。
    aFirst = ActiveDocument.Words(1).Text MsgBox aFirst
    下面的代码返回活动文档第一个书签的相关文本。

If ActiveDocument.Bookmarks.Count >= 1 Then
bookText = ActiveDocument.Bookmarks(1).Range.Text
MsgBox bookText
End If

11.7.5.2 选定文档中的文本
    使用 Select 方法可以选定文档中的一项。Select 方法对许多对象都是有效的,例如 Bookmark、Field、Range 和 Table 对象。 下面的代码选定活动文档中的第一张表格。
    ActiveDocument.Tables(1).Select
    下面的代码选定活动文档中的第一个域。
    ActiveDocument.Fields(1).Select

    下面的代码选定活动文档中的前四个段落。Range 方法用来创建 一个 Range 对象,该对象引用前四个段落。然后将 Select 方法应 用于 Range 对象。

Set myRange = ActiveDocument.Range
( Start:=ActiveDocument.Paragraphs ( 1 ) .Range.Start, _
End:=ActiveDocument.Paragraphs(4).Range.End)
myRange.Select

11.7.5.3 在文档中插入文本
    使用InsertBefore 方法可以在 Selection 或 Range 对象前后 插入文字。下面的代码在活动文档结尾处插入文字。
    ActiveDocument.Content.InsertAfter Text:=" the end." 下面的代码在所选内容前插入文字:
    Selection.InsertBefore Text:="new text "
    在使用了InsertBefore 或 InsertAfter 方法之后,Range 或 Selection 会扩展并包含新的文本。使用 Collapse 方法可以将 Selection 或 Range 折叠到开始或结束位置。
    利用InsertAfter 方法可将指定文本插入某一区域或所选内容的 后面。应用本方法可以扩展原区域或所选内容,使其包含新文本。
    如果应用本方法的区域或所选内容是一个完整的段落,则在段落 结束标记之后插入文本,插入文本将出现在下一段开头。如要在段 尾插入文本,可先确定结束点,再从该位置减去 1(因段落标记是 一个字符),如下面的代码所示:

Set Doc = ActiveDocument
Set myRange = Doc.Range ( Start:=Doc.Paragraphs
(1).Range.End - 1, _
End:=Doc.Paragraphs(1).Range.End - 1)
myRange.InsertAfter " the end."

11.7.5.4 修改文档的某一部分
    Visual Basic 包含一些对象,可用这些对象修改下面的文档元 素:字符、单词、句子、段落和节。表11-4 包含了与这些文档元素 对应的属性和这些属性返回的对象。

    使用这些属性时不带索引序号,会返回一个相同名称的集合对 象。例如,Paragraphs 属性返回 Paragraphs 集合对象。但如果通 过索引序号识别集合中的一项,就只会返回上表中第二列中的对象。 例如,Words(1) 返回一个 Range 对象。在有了一个 Range 对象 之后,可以使用这个区域的任何属性或方法修改该 Range 对象。例 如,下面的代码将所选内容的第一个单词复制到剪贴板上。
    Selection.Words(1).Copy
    Paragraphs 和 Sections 集合中的项是该集合的单个成员,而 Range 对象却不是如此。但 Range 属性(返回 Range 对象)对 Paragraph 和 Section 对象都是有效的。例如,下面的代码将活动 文档的第一个段落复制到剪贴板上。
    ActiveDocument.Paragraphs(1).Range.Copy
    在表11-4 中所有文档元素属性对 Document、Selection 和 Range 对象都是有效的。下面的代码表明了如何按照顺序引用 Document、Selection 和 Range 对象的这些属性。

    下面的代码设置活动文档第一个单词的大小写。
    ActiveDocument.Words(1).Case = wdUpperCase

    下面的代码将当前节的下边距设置为 0.5 英寸。

Selection.Sections ( 1 ) .PageSetup.BottomMargin =
InchesToPoints(0.5) 

    下面的代码将活动文档的字符间距设为两倍(Content 属性返回一个 Range 对象)。

Set Doc = ActiveDocument
Set myRange = Doc.Range(Start:=Doc.Words(1).Start,
_
End:=Doc.Words(3).End)


Set Doc = ActiveDocument
Set myRange = Doc.Range ( Start:=Doc.Paragraphs
(2).Range.Start, _
End:=Doc.Paragraphs(3).Range.End)

    ActiveDocument.Content.ParagraphFormat.Space2
    修改一组文档元素:
    要修改由一组文档元素(字符、单词、句子、段落或节)组成一 定区域的文字,就需要创建一个 Range 对象。Range 方法根据开始 和结束位置可创建 Range 对象。例如,下面的指令创建一个 Range 对象,该对象引用活动文档的前十个字符。
    Set myRange = ActiveDocument.Range(Start:=0, End:=10) 使用 Range 对象的 Start 和 End 属性,可以创建一个新的Range 对象,该对象引用一组文档元素。例如,下面的指令创建一 个 Range 对象(myRange),该对象引用活动文档的前三个单词。
    下面的代码创建一个 Range 对象(aRange),该对象从第二段 的开头开始,到第三段之后结束。

Set Doc = ActiveDocument
Set myRange = Doc.Range ( Start:=Doc.Paragraphs
(2).Range.Start, _
End:=Doc.Paragraphs(3).Range.End)

11.7.5.5 判定是否选定某一文本
    Selection 对象的 Type 属性返回有关所选内容的信息。如果所 选内容是插入点,则下面的代码显示一条信息。
    If Selection.Type = wdSelectionIP Then MsgBox "Nothing is selected"

11.7.5.6 折迭所选内容或范围
    使用 Collapse 方法可以将 Selection 或 Range 对象折迭到开 始或结束位置。下面的代码在所选内容的开头将所选内容折叠为一 个插入点。
    Selection.Collapse Direction:=wdCollapseStart
    下面的代码将 myRange 对象折叠到结束位置(在第一个单词之 后)。
    Set myRange = ActiveDocument.Words(1)
    myRange.Collapse Direction:=wdCollapseEnd

11.7.5.7 扩展所选内容或范围
    下面的代码使用 MoveEnd 方法将所选内容的结尾向前扩展以多 包含三个单词。MoveLeft、MoveRight、MoveUp 和 MoveDown 方法 也可以用来扩展 Selection 对象。
    Selection.MoveEnd Unit:=wdWord, Count:=3
    下面的代码使用 MoveEnd 方法扩展 oRange,以包含活动文档的 前三个段落。

    Set oRange = ActiveDocument.Paragraphs(1).Range
    oRange.MoveEnd Unit:=wdParagraph, Count:=2

11.7.5.8 修改文字
    通过更改某一范围中的内容可更改现有的文字。下面的指令通过 将 Text 属性设置为"good ",修改活动文档的第一个单词。
    ActiveDocument.Words(1).Text = "good "
    也可以使用 Delete 方法删除现有文字,然后使用 InsertAfter 或 InsertBefore 方法插入新文字。下面的代码删除活动文档的第 一段,并插入新文字。

Set myRange = ActiveDocument.Paragraphs(1).Range
With myRange
.Delete
.InsertAfter Text:="New text"
.InsertParagraphAfter
End With

11.7.5.9 查找并替换文字或格式
    Find 和 Replacement 对象具有查找和替换功能。Find 对象对 Selection 和 Range 对象有效。是否从 Selection 或 Range 对象 访问 Find 对象,会使查找操作略有不同。
    1.查找并选定文字
    如果是从Selection 对象访问Find 对象,当找到搜索条件时, 就会更改所选内容。下面的代码选定下一次出现的“你好”。如果 到达文档结尾还没有找到“你好”,则停止搜索。

With Selection.Find
.Forward = True
.Wrap = wdFindStop
.Text = "你好"
.Execute
End With

    Find 对象包含各种属性,这些属性对应于【编辑】菜单【查找命令的【查找并替换】对话框中的选项。可以设置 Find 对象的单个属性,或者使用 Execute 方法及参数,如下例所示。
    Selection.Find.Execute FindText:=" 你好", Forward:=True, Wrap:=wdFindStop
    '查找文字,但并不更改所选内容
    如果是从 Range 对象访问 Find 对象,则当找到搜索条件时, 不更改所选内容,但是会重新定义 Range。下面的代码在活动文档中定位第一次出现的【粗体】。如果找到了,则重新定义该范围, 并将加粗格式应用于【粗体】。

With ActiveDocument.Content.Find
.Text = "粗体"
.Forward = True
.Execute
If .Found = True Then .Parent.Bold = True
End With

    下面的代码使用带有参数的 Execute 方法,进行的操作与上例 相同。

Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:="粗体", Forward:=True
If myRange.Find.Found = True Then myRange.Bold = True

    2.使用 Replacement 对象
    Replacement 对象代表查找和替换操作的替换条件。Replacement 对象的属性和方法对应于【编辑】菜单【查找和替换】对话框中的 选项。
    Replacement 对象对 Find 对象是有效的。下面的代码将所有的"hi"替换为【你好】。由于 Find 对象是通过 Selection 对象访问 的,所以当找到搜索条件时,会更改所选内容。

With Selection.Find
.ClearFormatting
.Text = "hi"
.Replacement.ClearFormatting
.Replacement.Text = "你好"
.Execute Replace:=wdReplaceAll, Forward:=True,
Wrap:=wdFindContinue
End With
    下面的代码从活动文档中删除加粗格式。Find 对象的 Bold 属 性为 True,而Replacement 对象的 Bold 属性为 False。为了查找 并替换格式,需将查找并替换的文字替换为空字符(""),并将 Execute 方法的 Format 参数设置为 True。由于 Find 对象是通过 Range 对象访问的,所以不更改所选内容(Content 属性返回 Range 对象)。

With ActiveDocument.Content.Find
.ClearFormatting
.Font.Bold = True
With .Replacement
.ClearFormatting
.Font.Bold = False
End With
.Execute FindText:="", ReplaceWith:="",
Format:=True, Replace:=wdReplaceAll
End With

11.7.5.10 处理其他各种杂务
    1.更改视图
    View 对象包含窗口或窗格的视图特性的属性和方法(全部显示、 显示域底纹、显示表格虚框等)。下面的代码将视图更改为页面视 图。
    ActiveWindow.View.Type = wdPageView
    2.设置页眉或页脚中的文字
    HeaderFooter 对象是由 Headers、Footers 和 HeaderFooter 属 性返回的。下面的代码更改当前页面的页脚的文字。

ActiveWindow.View.SeekView = wdSeekCurrentPageHeader
Selection.HeaderFooter.Range.Text = "页眉文字"

    本代码创建一个 Range 对象(oRange),该对象引用活动文档 第一节的基本页脚。设置了 Range 对象之后,删除现有的页脚文字。 向该页脚添加 FILENAME 域,后接两个制表位和 AUTHOR 域。
Set oRange = ActiveDocument.Sections ( 1 ) .Footers
(wdHeaderFooterPrimary).Range
With oRange
.Delete
.Fields.Add Range:=oRange, Type:=wdFieldFileName,
Text:="\p"
.InsertAfter Text:=vbTab & vbTab
.Collapse Direction:=wdCollapseStart
.Fields.Add Range:=oRange, Type:=wdFieldAuthor
End With

    3.设置选项
    Options 对象包含的属性对应于【工具】菜单【选项】对话框中 各项。下面的代码设置 Word 应用程序的三个选项。

With Options
.AllowDragAndDrop = True
.ConfirmConversions = False
.MeasurementUnit = wdPoints
End With

    4.更改文档版面
    PageSetup 包含文档的所有页面设置属性(左边距、下边距、纸 张大小等等)。下面的代码设置活动文档的页边距。

With ActiveDocument.PageSetup
.LeftMargin = InchesToPoints(0.75)
.RightMargin = InchesToPoints(0.75)
.TopMargin = InchesToPoints(1.5)
.BottomMargin = InchesToPoints(1)
End With

    5.循环遍历文档各段
    本代码循环遍历活动文档的所有段落。如果某个段落的段前间距 为 12 磅,则本代码将段前间距改为 24 磅。

    For Each aPara In ActiveDocument.Paragraphs
    If aPara.SpaceBefore = 12 Then oPara.SpaceBefore =
24
Next aPara

    6.自定义菜单和工具栏
    CommandBar 对象同时代表菜单和工具栏。使用一个菜单或工具 栏名称的 CommandBars 属性可以返回单个的 CommandBar 对象。 Controls 属性返回一个 CommandBarControls 对象,该对象引用指 定工具栏上的项。下面的代码向【工具】菜单添加【字数统计】命 令。

CustomizationContext = NormalTemplate
CommandBars ( "Tools" ) .Controls.Add
Type:=msoControlButton, ID:=792, _
Before:=6
下面的代码向【格式】工具添加【双下划线】命令。
CustomizationContext = NormalTemplate
CommandBars ( "Formatting" ) .Controls.Add
Type:=msoControlButton, ID:=60, _
Before:=7
如果觉得《自动完成Word 日常任务》Word教程,word2003教程,word2007教程,word视频教程不错,可以推荐给好友哦。

本文Tags: 电脑教学 - Word教程,word2003教程,word2007教程,word视频教程,
广告联系|管理下载|游戏下载|公文中心|驾驶考试|电脑教学|教育教学|名言名句|网站地图|热门专题
Copyright © 资源下载. All Rights Reserved .
本页提供自动完成Word 日常任务,Word教程,word2003教程,word2007教程,word视频教程参考。
1 2 3 4 5 6 7 8 9 10 11 12