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 物件。
方法
- BoldRun
- Calculate
- ClearCharacterAllFormatting
- ClearCharacterDirectFormatting
- ClearCharacterStyle
- ClearFormatting
- ClearParagraphAllFormatting
- ClearParagraphDirectFormatting
- ClearParagraphStyle
- Collapse
- ConvertToTable
- Copy
- CopyAsPicture
- CopyFormat
- CreateAutoTextEntry
- CreateTextbox
- Cut
- Delete
- DetectLanguage
- EndKey
- EndOf
- EscapeKey
- Expand
- ExportAsFixedFormat
- ExportAsFixedFormat2
- Extend
- GoTo
- GoToEditableRange
- GoToNext
- GoToPrevious
- HomeKey
- InRange
- InsertAfter
- InsertBefore
- InsertBreak
- InsertCaption
- InsertCells
- InsertColumns
- InsertColumnsRight
- InsertCrossReference
- InsertDateTime
- InsertFile
- InsertFormula
- InsertNewPage
- InsertParagraph
- InsertParagraphAfter
- InsertParagraphBefore
- InsertRows
- InsertRowsAbove
- InsertRowsBelow
- InsertStyleSeparator
- InsertSymbol
- InsertXML
- InStory
- IsEqual
- ItalicRun
- LtrPara
- LtrRun
- Move
- MoveDown
- MoveEnd
- MoveEndUntil
- MoveEndWhile
- MoveLeft
- MoveRight
- MoveStart
- MoveStartUntil
- MoveStartWhile
- MoveUntil
- MoveUp
- MoveWhile
- Next
- NextField
- NextRevision
- NextSubdocument
- Paste
- PasteAndFormat
- PasteAppendTable
- PasteAsNestedTable
- PasteExcelTable
- PasteFormat
- PasteSpecial
- Previous
- PreviousField
- PreviousRevision
- PreviousSubdocument
- ReadingModeGrowFont
- ReadingModeShrinkFont
- RtlPara
- RtlRun
- Select
- SelectCell
- SelectColumn
- SelectCurrentAlignment
- SelectCurrentColor
- SelectCurrentFont
- SelectCurrentIndent
- SelectCurrentSpacing
- SelectCurrentTabs
- SelectRow
- SetRange
- Shrink
- ShrinkDiscontiguousSelection
- Sort
- SortAscending
- SortByHeadings
- SortDescending
- SplitTable
- StartOf
- ToggleCharacterCode
- TypeBackspace
- TypeParagraph
- TypeText
- WholeStory
屬性
- Active
- Application
- BookmarkID
- Bookmarks
- Borders
- Cells
- Characters
- ChildShapeRange
- Columns
- ColumnSelectMode
- Comments
- Creator
- Document
- Editors
- End
- EndnoteOptions
- Endnotes
- EnhMetaFileBits
- ExtendMode
- Fields
- Find
- FitTextWidth
- Flags
- Font
- FootnoteOptions
- Footnotes
- FormattedText
- FormFields
- Frames
- HasChildShapeRange
- HeaderFooter
- HTMLDivisions
- Hyperlinks
- Information
- InlineShapes
- IPAtEndOfLine
- IsEndOfRowMark
- LanguageDetected
- LanguageID
- LanguageIDFarEast
- LanguageIDOther
- NoProofing
- OMaths
- Orientation
- PageSetup
- ParagraphFormat
- Paragraphs
- Parent
- PreviousBookmarkID
- Range
- Rows
- Sections
- Sentences
- Shading
- ShapeRange
- Start
- StartIsActive
- StoryLength
- StoryType
- Style
- Tables
- Text
- TopLevelTables
- Type
- WordOpenXML
- Words
- XML
請參閱
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。