Selection 物件 (Word)

代表視窗或窗格內的目前選取範圍。 選取範圍代表文件中選定 (或醒目提示) 的區域,或是在未選取任何文件內容時代表插入點。 每一個文件視窗窗格只能有一個 Selection 物件,而且整個應用程式中只能有一個 Selection 物件為使用中狀態。

重要事項

此方法已經變更。 在附有註解的使用者選取範圍上使用類似 Selection.BoldRun 的 VBA Selection 命令,不會再針對使用者選取的文字套用粗體格式,或者對附有註解的使用者選取範圍使用 Selection.TypeTxt 命令時不再插入文字。

註解

使用 Selection 屬性來傳回 Selection 物件。 如果未搭配 Selection 屬性使用任何物件辨識符號,則 Microsoft Word 會傳回使用中文件視窗之使用中窗格內的選取範圍。 下列範例會複製使用中文件內的目前選取範圍。

Selection.Copy

下列範例會從 Documents 集合的第三個文件中刪除選取範圍。 文件不必是使用中,也可存取其目前的選取範圍。

Documents(3).ActiveWindow.Selection.Cut

下列範例會從使用中文件的第一個窗格複製選取範圍,然後將它貼到第二個窗格。

ActiveDocument.ActiveWindow.Panes(1).Selection.Copy 
ActiveDocument.ActiveWindow.Panes(2).Selection.Paste

Text 屬性是 Selection 物件的預設屬性。 使用此屬性來設定或傳回目前選取範圍中的文字。 下列範例會將目前選取範圍中的文字指派給變數 strTemp,如果最後一個字元是段落標記,則將它移除。

Dim strTemp as String 
 
strTemp = Selection.Text 
If Right(strTemp, 1) = vbCr Then _ 
 strTemp = Left(strTemp, Len(strTemp) - 1)

Selection 物件有各種方法和屬性,您可以利用這些方法和屬性來摺疊、展開,或甚至是變更目前選取範圍。 下列範例會將插入點移至文件結尾,並選取最後三行。

Selection.EndOf Unit:=wdStory, Extend:=wdMove 
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend 
Selection.MoveUp Unit:=wdLine, Count:=2, Extend:=wdExtend

Selection 物件有各種方法和屬性,您可以利用這些方法和屬性來編輯文件中的選定文字。 下列範例會選取使用中文件中的第一句,並將它以新段落取代。

Options.ReplaceSelection = True 
ActiveDocument.Sentences(1).Select 
Selection.TypeText "Material below is confidential." 
Selection.TypeParagraph

下列範例會刪除 Documents 集合中第一個文件的最後一個段落,然後將它貼到第二個文件的開頭。

With Documents(1) 
 .Paragraphs.Last.Range.Select 
 .ActiveWindow.Selection.Cut 
End With 
 
With Documents(2).ActiveWindow.Selection 
 .StartOf Unit:=wdStory, Extend:=wdMove 
 .Paste 
End With

Selection 物件有各種方法和屬性,您可以利用這些方法和屬性來變更目前選取範圍的格式設定。 下列範例會將目前選取範圍的字型從 Times New Roman 變更為 Tahoma。

If Selection.Font.Name = "Times New Roman" Then _ 
 Selection.Font.Name = "Tahoma"

使用類似 Flags、Information 及 Type 的屬性可傳回與目前選取範圍有關的資訊。 在程序中使用下列範例,以判斷使用中文件內是否有選取任何項目;如果沒有的話,會跳過此程序的其餘部分。

If Selection.Type = wdSelectionIP Then 
 MsgBox Prompt:="You have not selected any text! Exiting procedure..." 
 Exit Sub 
End If

即使在選取範圍已摺疊成插入點時,它也不一定是空白。 例如,Text 屬性仍將傳回插入點右側的字元,此字元也會出現在 Selection 物件的 Characters 集合中。 不過,來自已摺疊選取範圍的 Cut 或 Copy 之類呼叫方法會造成錯誤。

使用者可能在文件中選取了不代表連續文字的區域 (例如,使用 Alt 鍵搭配滑鼠時)。 因為這類選取範圍的行為可能無法預期,您可以在程式碼中包含一個步驟,以先檢查選取範圍的 Type 屬性,再執行任何操作 (Selection.Type = wdSelectionBlock)。

同樣地,包含表格儲存格的選取範圍也可能導致無法預期的行為。 Information 屬性會告訴您選取範圍是否在表格 (Selection.Information(wdWithinTable) = True) 內。 下列範例會判斷選取範圍是否正常 (例如,不是位於資料表中的資料列或資料欄,不是垂直的文字區塊);您可以先用它來測試目前的選取範圍,再執行任何操作。

If Selection.Type <> wdSelectionNormal Then 
 MsgBox Prompt:="Not a valid selection! Exiting procedure..." 
 Exit Sub 
End If

由於 Range 物件會與 Selection 物件共用許多相同的方法和屬性,所以當沒有任何理由可實際變更目前選取範圍時,最好使用 Range 物件來管理文件。 如需 Selection 和 Range 物件的詳細資訊,請參閱使用 Selection 物件和使用 Range 物件。

方法

屬性

請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。