Utilisation de l'objet Selection

En règle générale, lorsque vous travaillez sur un document dans Word, vous sélectionnez du texte et vous effectuez ensuite une action, telle que l'application d'une mise en forme ou la saisie de texte. Dans Visual Basic, il n'est en général pas nécessaire de sélectionner du texte avant de le modifier. Au lieu de cela, vous créez un objet Range qui fait référence à une partie spécifique du document. Pour plus d'informations sur la définition d'objets Range, voir Utilisation des objets Range. Toutefois, lorsque vous souhaitez que votre code réponde à une sélection ou la modifie, vous pouvez le faire à l’aide de l’objet Selection.

Si le texte n’est pas encore sélectionné, utilisez la méthode Select pour sélectionner le texte associé à un objet spécifique et créer un objet Selection. Par exemple, l’instruction ci-dessous sélectionne le premier mot du document actif.

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

Pour plus d’informations, voir Sélection de texte dans un document. Si du texte est déjà sélectionné, utilisez la propriété Selection pour renvoyer un objet Selection qui représente la sélection actuelle dans un document. Il ne peut y avoir qu'un seul objet Selection par document et il accède toujours à la sélection active. Cet exemple montre comment modifier la mise en forme des paragraphes de la sélection :

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

Cet exemple montre comment insérer le mot « Hello » après la sélection active :

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

Cet exemple montre comment mettre en gras le texte sélectionné :

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

Les macros créées par l'enregistreur de macros utilisent souvent l'objet Selection. L'exemple ci-dessous a été créé à l'aide de l'enregistreur de macros. Cette macro sélectionne les deux premiers mots du document actif et les met en gras.

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

Cet exemple montre comment accomplir la même tâche sans sélectionner le texte ni utiliser l'objet Selection :

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

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.