Selection オブジェクトを使用する

Word で文書を操作するときは、通常、テキストを選択してから、テキストの書式設定やテキストの入力などのアクションを実行します。 Visual Basic では、通常、テキストを変更する前にテキストを選択する必要はありません。 代わりに、文書の特定の部分を参照する Range オブジェクトを作成します。 Range オブジェクトの定義については、「Range オブジェクトを使用する」を参照してください。 ただし、コードが選択範囲に応答したり変更したりする場合は、 Selection オブジェクトを使用してこれを行うことができます。

テキストがまだ選択されていない場合は、 Select メソッドを使用して、特定のオブジェクトに関連付けられているテキストを選択し、 Selection オブジェクトを作成します。 たとえば、次のコードは、作業中の文書の先頭の単語を選択します。

Sub SelectFirstWord() 
 ActiveDocument.Words(1).Select 
End Sub

詳細については、「文書内の文字列を選択する」を参照してください。 テキストが既に選択されている場合は、 Selection プロパティを使用して、ドキュメント内の現在の選択範囲を表す Selection オブジェクトを取得します。 Selection オブジェクトは文書ごとに 1 つだけ存在し、常に現在の選択範囲にアクセスします。 次の使用例は、現在の選択範囲の段落の書式を変更します。

Sub FormatSelection() 
 Selection.Paragraphs.LeftIndent = InchesToPoints(0.5) 
End Sub

次の使用例は、現在の選択範囲の後に "はじめまして" という単語を挿入します。

Sub InsertTextAfterSelection() 
 Selection.InsertAfter Text:="Hello " 
End Sub

次の使用例は、選択範囲の文字列に太字を設定します。

Sub BoldSelectedText() 
 Selection.Font.Bold = True 
End Sub

マクロ記録機能では、通常、 Selection オブジェクトを使用するマクロが作成されます。 次の使用例は、マクロ記録機能で作成されたものです。 このマクロは、作業中の文書の先頭の 2 つの単語を選択し、太字の書式を設定します。

Sub Macro() 
 Selection.HomeKey Unit:=wdStory 
 Selection.MoveRight Unit:=wdWord, Count:=2, Extend:=wdExtend 
 Selection.Font.Bold = wdToggle 
End Sub

次の使用例は、文字列を選択したり、 Selection オブジェクトを使用したりせずに同じ処理を実行します。

Sub WorkingWithRanges() 
 ActiveDocument.Range(Start:=0, _ 
 End:=ActiveDocument.Words(2).End).Bold = True 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。