word vba 学习讲义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Word学习讲义
Window 对象是集合的一个成员。
Application 对象的 Windows 集合包含应用程序中的所有窗口,
而 Document 对象的 Windows 集合仅包含显示指定文档的窗口。
使用 Windows(Index) 可返回一个 Window 对象,其中 Index 为窗口名称或索引号。
以下示例将 Document1 窗口最大化。
Windows("Document1").WindowState = wdWindowStateMaximize
使用 Add 方法或 NewWindow 方法可向 Windows 集合添加新窗口。
下列每个语句都为活动窗口中的文档创建一个新窗口。
NewWindow
Windows.Add
使用方法打开一个文件。
以下示例打开名为“Sales.doc”的文档。
Documents.Open FileName:="C:\My Documents\Sales.doc"
使用 (Index) 返回单个 Document 对象(其中 Index 是文档名称或索引编号)。
以下指令关闭名为“Report.doc”的文档但不保存更改。
Documents("Report.doc").Close SaveChanges:=wdDoNotSaveChanges
索引编号代表文档在 Documents 集合中的位置。
以下示例激活 Documents 集合中的第一篇文档。
Documents(1).Activate
以下示例枚举 Documents 集合以判定名为“Report.doc”的文档是否已打开。
如果该文档包含在 Documents 集合中,则激活该文档,否则打开该文档。
For Each doc In Documents
If = "Report.doc" Then found = True
Next doc
If found <> True Then
Documents.Open FileName:="C:\Documents\Report.doc"
Else
Documents("Report.doc").Activate
End If
有多个对象具有 Range 属性,如、和。
该属性用于返回 Range 对象。
下面的示例返回一个 Range 对象,该对象引用活动文档中的第一段。
Sub SetParagraphRange()
Dim rngParagraph As Range
Set rngParagraph = ActiveDocument.Paragraphs(1).Range
End Sub
使用方法可重新定义现有的 Range 对象。
下面的示例将一个区域定义为当前的所选内容。
然后应用 SetRange 方法以重新定义该区域,使之包含当前所选内容和接下来的 10 个字符。
Dim rngParagraph As Range
Set rngParagraph = Selection.Range
rngParagraph.SetRange Start:=rngParagraph.Start, _
End:=rngParagraph.End + 10
以下示例在活动文档中查找所有“hi”并将其替换为“hello”。
Set myRange = ActiveDocument.Content
FindText:="hi", ReplaceWith:="hello", _
Replace:=wdReplaceAll
使用 Bookmarks 属性返回文档、区域或选定内容的 Bookmarks 集合。
以下示例在选择名为“temp”的书签之前,确保该书签存在于活动文档中。
If "temp") = True Then
ActiveDocument.Bookmarks("temp").Select
End If
本示例将 myRange 设置为代表活动文档内容区域,折叠 myRange,然后在文档的最后插入一个 2x2 表格。
Set myRange = ActiveDocument.Content
myRange.Collapse Direction:=wdCollapseEnd
Range:=myRange, NumRows:=2, NumColumns:=2
如果用 wdCollapseEnd 折叠一个代表完整段落的区域,则该区域将定位于段落结束标记之后(即下段开头)。
但是,在该区域折叠后,可以用 MoveEnd 方法将区域回移一个字符。
如下例所示:
Set myRange = ActiveDocument.Paragraphs(1).Range
myRange.Collapse Direction:=wdCollapseEnd
myRange.MoveEnd Unit:=wdCharacter, Count:=-1
要将 Shape 对象添加到指定文档的形状集合,并返回一个代表新建形状的 Shape 对象,
可使用 Shapes 集合的下列方法之一:AddCallout、AddCurve、AddLabel、AddLine、AddOleControl、AddOleObject、AddPolyline、AddShape、AddTextbox、AddTextEffect 或 BuildFreeForm。
以下示例向活动文档添加一个矩形。
msoShapeRectangle, 50, 50, 100, 200
使用 Replacement 属性可返回一个 Replacement 对象。
以下示例将下一处出现的单词“hi”替换为单词“hello”。
With Selection.Find
.Text = "hi"
.ClearFormatting
.Replacement.Text = "hello"
.Replacement.ClearFormatting
.Execute Replace:=wdReplaceOne, Forward:=True
End With
要查找和替换格式,请将查找文字和替换文字均设置为空字符串 (""),并将 Execute 方法的 Format 参数设置为 True。
以下示例删除活动文档中的所有加粗格式。
Find 对象的 Bold 属性为 True,而 Replacement 对象的该属性为 False。
With
.ClearFormatting
.Font.Bold = True
.Text = ""
With .Replacement
.ClearFormatting
.Font.Bold = False
.Text = ""
End With
.Execute Format:=True, Replace:=wdReplaceAll
End With
没有用于Characters 集合的Add 方法。
但是可以使用InsertAfter 或InsertBefore 方法将字符添加到 Range 对象中。
以下示例在活动文档的第一个段落后插入一个新段落。
With ActiveDocument
.Paragraphs(1).Range.InsertParagraphAfter
.Paragraphs(2).Range.InsertBefore "New Text"
End With
本示例为活动文档的第三段添加一条备注。
Dim myRange As Range
Set myRange = ActiveDocument.Paragraphs(3).Range
Range:=myRange, _
Text:="original third paragraph"
删除备注。