共用方式為


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"

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

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

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

使用者可能在文件中選取了不代表連續文字的區域 (例如,使用 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 物件來管理文件。 如需 SelectionRange 物件的詳細資訊,請參閱使用 Selection 物件使用 Range 物件

方法

屬性

請參閱

支援和意見反應

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