荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Jobs (温少), 信区: Visual
标  题: Microsoft Word 对象--运用Selection对象
发信站: BBS 荔园晨风站 (Sun Jan 16 18:10:22 2000), 转信




运用Selection对象

当用户使用Word中的某个文档时,通常会先选择文字,然后再执行一项操作,比
如设定以有文字的格式,或是键入新文字。在Visual Basic中,通常没有必要在
修改文字之前先选定该文字;而是创建一个表示文档特定部分的Range对象并对其
进行操作。但是,当用户想要自己的代码对选定内容作出响应或是改变选定内容
,就可以通过Selection对象来完成任务。

可以使用Selection属性来返回Selection对象。在文档窗口的每个窗格中只能有
一个Selection对象,在任何时刻,也只能有一个活动的Selection对象。选定内
容可以包含文档的一块区域,也可以被折叠到一个插入点。以下的示例改变了选
定内容中各个段的段落格式。

Selection. Paragraphs. SpaceBefore = InchesToPoints (0.25)

Selection属性可以在Application对象、Window对象和Pane对象中使用。如果随
同Application对象使用Selection属性,则该Selection对象表示活动的选定内容


Selection. InsertAfter Text :="Next Text"

也可以随同一个Window对象或Pane对象使用Selection属性来返回一个在特定窗口
或窗口窗格中Selection对象。以下的示例随同Window对象使用Selection属性,
在文档窗口“Document2”中插入文字。

Windows ("Document2"). Selection.InsertAfter Text :="New Text"

以下的示例随同Pane对象使用Selection属性,在主页眉窗格中插入文字。

With ActiveWindow

.View. Type = wdPageView

.View. SeekView = wdSeekPrimaryHeader

.ActivePane. Selection. InsertAfter Text :="Header"

End With

在使用InsertAfter方法或InsertBefore方法之后,选定内容随之扩大,包括了新
的文字。但是,用户也可以使用Collapse方法将选定内容折叠到它的起始或终止
位置。以下的示例在选定内容的文字之后插入单词“Hello”,任何将选定内容折
叠到单词“Hello”之后的插入点。

Selection. InsertAfter Text :="Hello"

Selection. Collapse Direction :=wdCollapseEnd

移动和扩展选定内容

用户可以通过几种方法来移动或扩展由Selection对象所表示的选定内容(例如,
Move和MoveEnd)。以下的示例将选定内容移动到下一段的开头。

Selection. MoveDown Unit :=wdParagraph, Count :=1, Extend :=wdMove

用户也可以通过改变Selection对象的Start属性及End属性的值,或者通过
MoveStart和MoveEnd方法来移动或扩展选定内容。以下的示例通过把终止位置移
动到段尾来对选定内容进行扩展。

Selection. MoveEnd Unit :=wdParagraph, Count :=1

因为在一个文档窗口或窗格中只能有一个选定内容,用户也可以通过选定另一个
对象来移动选定内容。可以使用Select方法,选择文档的一项。在使用Select方
法之后,就可以使用Selection属性返回一个Selection对象。以下的示例选定了
活动文档中的第一个单词,然后把该单词变为“Hello”。

ActiveDocument. Words(1). Select

Selection. Text = "Hello "

用户也可以通过GoToNext方法、GoToPrevious方法或GoTo方法来移动选定内容。
以下的示例将选定内容移动到文档中的第四行。

Selection. GoTo What :=wdGoToLine, Which :=wdGoToAbsolute, Count :=4

以下的示例将选定内容恰好移动到活动文档中的下一个域之前。

Selection. GoToNext What :=wdGoToField

在Selection对象使用的对象

可以在Range对象和Document对象中使用的许多其他对象也能在Selection对象中
使用,这使得用户可以在一个选定内容中控制操纵对象。要获得能在Selection对
象使用的对象的完整列表,请参阅“帮助”中的“Microsoft Word 对象
(Selection)”,或者“Selection对象”。

以下的示例更新了选定内容中各个域的结果。

If Selection. Fields. Count >= 1 Then Selection. Fields. Update

以下的示例将一节中的各个段落缩进了0.5英寸。

Selection. Paragraphs. LeftIndent = InchesToPoints (0.5)

用户可以使用For Each...Next语句在选定内容中的单个对象上进行循环操作,来
代替对选定内容中的所有对象逐个进行控制操纵。以下的示例在选定内容的每个
段落上进行循环操作,将找到的任何居中的段落变为左对齐。

For Each para In Selection. Paragraphs

If para. Alignment = wdAlignParagraphCenter Then para. Alignment = _

wdAlignParagraphLeft

Next para

以下的示例显示出选定内容中每个书签的名字。

For Each aBook In Selection. Bookmarks

MsgBox aBook. Name

Next aBook

Selection对象的属性和方法

本节突出介绍Selection对象的一些常用属性和方法。

返回或设置选定内容中的文字

可以使用Text属性来返回或设置一个Selection对象的内容。以下的示例返回所选
的文字。

strText = Selection. Text

以下的示例将所选文字改为“Hello World”。

Selection. Text = "Hello World"

可以InsertBefore 方法或InsertBefore方法,在选定内容之前或之后插入文字。
以下的示例在选定内容之前插入了文字。

Selection. InsertBefore Text :="And furthermore "

为许多文字设定格式

可以使用Font属性来访问设置字符格式的属性和方法,也可以使用
ParagraphFormat属性来访问设置段落格式的属性和方法。以下的示例设置了选定
内容的字符和段落格式。

With Selection. Font

.Name = "Times New Roman"

.Size = 14

End With

Selection. ParagraphFormat. LeftIndent = InchesToPoints (0.5)

返回一个Range对象

如果一种方法或属性是在Range对象而不是Selection对象中使用的(例如,
CheckSpelling方法),那么可以使用Range属性来从Selection对象返回一个Range
对象。以下的示例对所选单词进行拼写检查。

Selection. Range. CheckSpelling

返回关于选定内容的信息

可以使用Information属性来返回关于选定内容的信息。例如,用户可以判断当前
页的页码、文档的总页数,或是判断选定内容是否在一个页眉或注脚中。
Information属性可取三十五种不同的常量(wdActiveEndPageNumber,
wdNumberOfPagesInDocument 和 wdInHeaderFooter等等),用户可以使用它们来
返回关于选定内容的不同信息。举个例子,如果选定内容处于一张表格中,那么
以下的示例将显示表格中的行号或列号。

If Selection. Information (wdWithInTable) = True Then

MsgBox "Columns = " & Selection. Information (wdMaximumNumberOfColumns) _

& vbCr & "Rows = " & Selection. Information (wdMaximumNumberOfRows)

End If

要获得可以随Information属性一起使用的常量的完整列表和说明,请参阅“帮助
”中的“Information属性”。

判断文字是否被选定

可以使用Type属性来设置或返回选定内容在文档中被指定的方式。例如,可以使
用wdSelectionBlock常量来判断一个文字块是否被选定。如果选定内容是一个插
入点,那么以下的示例选定包含该插入点的段落。

If Selection. Type = wdSelectionIP Then

Selection. Paragraphs(1). Range. Select

End If


--

   好好学习,天天向上!!!!

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.11.111]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店