VBA在WORD应用中如何确定文本是否被选定

时间:2024-01-14 15:55:32

确定文本是否被选定
Selection 对象的 Type 属性返回所选内容类型的信息。如果所选内容为插入点,则下列示例显示一条消息。

Sub IsTextSelected()
    If Selection.Type = wdSelectionIP Then MsgBox "Nothing is selected"
End Sub
折叠所选内容或区域
使用 Collapse 方法可将 Selection 或 Range 对象折叠到开始或结束点的位置。下列示例在所选内容的开头将所选内容折叠为一个插入点。

Sub CollapseToBeginning()
    Selection.Collapse Direction:=wdCollapseStart
End Sub
下列示例将区域折叠至其结束点(在第一个单词之后),并添加新文本。

Sub CollapseToEnd()
    Dim rngWords As Range

Set rngWords = ActiveDocument.Words(1)
    With rngWords
        .Collapse Direction:=wdCollapseEnd
        .Text = "(This is a test.) "
    End With
End Sub
扩展所选内容或区域
下列示例使用 MoveEnd 方法扩展所选内容的结尾以包含三个附加的单词。MoveLeft、MoveRight、MoveUp 和 MoveDown 方法也可以用于扩展 Selection 对象。

Sub ExtendSelection()
    Selection.MoveEnd Unit:=wdWord, Count:=3
End Sub
下列示例使用 MoveEnd 方法扩展区域,以包含活动文档中的前三个段落。

Sub ExtendRange()
    Dim rngParagraphs As Range

Set rngParagraphs = ActiveDocument.Paragraphs(1).Range
    rngParagraphs.MoveEnd Unit:=wdParagraph, Count:=2
End Sub
重新定义 Range 对象
使用 SetRange 方法可重新定义现有的 Range 对象。有关详细信息,请参阅处理 Range 对象。

更改文字
通过更改某一区域中的内容可更改现有的文字。下列指令通过将 Text 属性设为“The”来更改活动文档中的第一个单词。

Sub ChangeText()
    ActiveDocument.Words(1).Text = "The "
End Sub
也可以使用 Delete 方法删除现有文本,然后使用 InsertAfter 或 InsertBefore 方法插入新文本。下列示例删除活动文档的第一段,并插入新文本。

Sub DeleteText()
    Dim rngFirstParagraph As Range

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