Selection オブジェクト (Word)Selection object (Word)

ウィンドウまたはウィンドウ枠の現在の選択範囲を表します。Represents the current selection in a window or pane. 選択範囲はドキュメントで選択 (強調表示) されている領域を表すか、ドキュメントで何も選択されていない場合は挿入ポイントを表します。A selection represents either a selected (or highlighted) area in the document, or it represents the insertion point if nothing in the document is selected. ドキュメント ウィンドウ枠ごとに Selection オブジェクトは 1 つだけであり、アプリケーション全体で 1 つの Selection オブジェクトのみをアクティブにできます。There can be only one Selection object per document window pane, and only one Selection object in the entire application can be active.

注釈Remarks

\*\*Selection\** オブジェクトを返すには、 \*\*Selection\** プロパティを使用します。Use the **Selection** property to return the **Selection** object. **選択範囲** プロパティにオブジェクトの区切りが使用されていなければ、Microsoft Word はアクティブなドキュメント ウィンドウのアクティブなウィンドウ枠から選択範囲を返します。If no object qualifier is used with the **Selection** property, Microsoft Word returns the selection from the active pane of the active document window. 次の例は、アクティブなドキュメントから現在の選択範囲をコピーします。The following example copies the current selection from the active document.
Selection.Copy

次の例では、 Documents コレクションの 3 番目のドキュメントから選択範囲を削除します。The following example deletes the selection from the third document in the Documents collection. 現在の選択範囲にアクセスするために、ドキュメントをアクティブにする必要はありません。The document does not have to be active to access its current selection.

Documents(3).ActiveWindow.Selection.Cut

次の例では、アクティブなドキュメントの 1 番目のウィンドウ枠から選択範囲をコピーし、2 番目のウィンドウ枠に貼り付けます。The following example copies the selection from the first pane of the active document and pastes it into the second pane.

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

Text プロパティは、Selection オブジェクトの既定のプロパティです。The Text property is the default property of the Selection object. このプロパティを使用して、現在の選択範囲のテキストを設定または返します。Use this property to set or return the text in the current selection. 次の例では、現在の選択範囲内のテキストを変数 strTempに割り当てて、段落記号である場合は、最後の文字を削除します。The following example assigns the text in the current selection to the variable strTemp, removing the last character if it is a paragraph mark.

Dim strTemp as String 
 
strTemp = Selection.Text 
If Right(strTemp, 1) = vbCr Then _ 
 strTemp = Left(strTemp, Len(strTemp) - 1)
\*\*Selection\*\* オブジェクトには、折りたたんだり展開したりできる、または現在の選択範囲を変更できるさまざまなメソッドやプロパティがあります。The **Selection** object has various methods and properties with which you can collapse, expand, or otherwise change the current selection. 次の例では、文書の末尾にカーソルを移動し、最後の 3 つの行を選択します。The following example moves the insertion point to the end of the document and selects the last three lines.
Selection.EndOf Unit:=wdStory, Extend:=wdMove 
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend 
Selection.MoveUp Unit:=wdLine, Count:=2, Extend:=wdExtend
\*\*Selection\*\* オブジェクトには、ドキュメントで選択したテキストを編集できるさまざまなメソッドやプロパティがあります。The **Selection** object has various methods and properties with which you can edit selected text in a document. 次の例では、作業中の文書の最初の文を選択し、新しい段落に置き換えます。The following example selects the first sentence in the active document and replaces it with a new paragraph.
Options.ReplaceSelection = True 
ActiveDocument.Sentences(1).Select 
Selection.TypeText "Material below is confidential." 
Selection.TypeParagraph

次の例では、 Documents コレクションの最初のドキュメントの最後の段落を削除して、2 番目のドキュメントの最初に貼り付けます。The following example deletes the last paragraph of the first document in the Documents collection and pastes it at the beginning of the second document.

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\*\* オブジェクトには、現在の選択範囲の書式設定を変更できるさまざまなメソッドやプロパティがあります。The **Selection** object has various methods and properties with which you can change the formatting of the current selection. 次の例では、現在の選択範囲のフォントを Times New Roman から Tahoma に変更します。The following example changes the font of the current selection from Times New Roman to Tahoma.
If Selection.Font.Name = "Times New Roman" Then _ 
 Selection.Font.Name = "Tahoma"

現在の選択範囲に関する情報を返すには、FlagsInformation、および Type などのプロパティを使用します。Use properties like Flags, Information, and Type to return information about the current selection. 次のプロシージャの例を使用して、アクティブなドキュメントに選択範囲があるかどうかを判別できます。選択範囲がなければ、残りのプロシージャはスキップされます。You can use the following example in a procedure to determine whether there is anything selected in the active document; if there is not, the rest of the procedure is skipped.

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

カーソル位置で選択範囲が折りたたまれている場合でも、必ずしも空ではありません。Even when a selection is collapsed to an insertion point, it is not necessarily empty. たとえば、Text プロパティはカーソル位置の右側に文字を返します。この文字は Selection オブジェクトの Characters コレクションにも表示されます。For example, the Text property will still return the character to the right of the insertion point; this character also appears in the Characters collection of the Selection object. ただし、折りたたまれている選択範囲から、[切り取り] または [コピー] などのメソッドを呼び出すと、エラーが発生します。However, calling methods like Cut or Copy from a collapsed selection causes an error.

ユーザーは連続したテキストを表していない文書の領域を選択することができます (たとえば、Alt キーとマウスを使用する場合)。It is possible for the user to select a region in a document that does not represent contiguous text (for example, when using the ALT key with the mouse). このような選択範囲の動作は予測できないため、任意の処理を実行する前に、選択範囲の Type プロパティをチェックするステップをコードに含めることもできます (Selection.Type = wdSelectionBlock)。Because the behavior of such a selection can be unpredictable, you may want to include a step in your code that checks the Type property of a selection before performing any operations on it ( Selection.Type = wdSelectionBlock).

同様に、表のセルを含む選択範囲により、予測できない動作が発生する可能性もあります。Similarly, selections that include table cells can also lead to unpredictable behavior. Information プロパティは、選択範囲がテーブル内にあるかどうかを通知します (Selection.Information(wdWithinTable) = True)。The Information property will tell you if a selection is inside a table ( Selection.Information(wdWithinTable) = True). 次の例では、選択範囲が通常かどうかを判定します (テーブルの行や列ではない、縦方向のテキスト ブロックではないなど)。これを使用して、任意の処理を実行する前に、現在の選択範囲をテストできます。The following example determines if a selection is normal (for example, it is not a row or column in a table, it is not a vertical block of text); you could use it to test the current selection before performing any operations on it.

If Selection.Type <> wdSelectionNormal Then 
 MsgBox Prompt:="Not a valid selection! Exiting procedure..." 
 Exit Sub 
End If
\*\*Range\*\* オブジェクトは、 \*\*Selection\*\* オブジェクトと多くの同じメソッドとプロパティを共有するため、現在の選択範囲を物理的に変更する理由がない場合、ドキュメントを操作するには \*\*Range\*\* オブジェクトを使用します。Because **Range** objects share many of the same methods and properties as **Selection** objects, using **Range** objects is preferable for manipulating a document when there is not a reason to physically change the current selection. **Selection** と **Range** オブジェクトの詳細については、[Selection オブジェクトを操作する](../word/Concepts/Working-with-Word/working-with-the-selection-object.md)と [Range オブジェクトを操作する](../word/Concepts/Working-with-Word/working-with-range-objects.md)を参照してください。For more information about **Selection** and **Range** objects, see [Working with the Selection object](../word/Concepts/Working-with-Word/working-with-the-selection-object.md) and [Working with Range objects](../word/Concepts/Working-with-Word/working-with-range-objects.md).

メソッドMethods

プロパティProperties

関連項目See also

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.