2010-01-15 12 views
1

J'ai une macro qui change le texte sélectionné, et je l'ai assigné à un bouton.Comment obtenir le texte sélectionné dans VBA

Fonctionne parfaitement lorsque je l'exécute directement à partir de Visual Basic, mais lorsque je clique sur le bouton, le bouton obtient le focus et mon texte n'est plus sélectionné pour que la macro change l'élément sélectionné en bouton.

Comment puis-je sélectionner le texte et exécuter la macro en cliquant sur le bouton tout en sélectionnant le texte?

Répondre

3

Le bouton est-il intégré dans le document? Vous devrez peut-être le placer sur un formulaire qui se charge en haut de la fenêtre Word ou dans un menu/barre d'outils, de sorte que le cliquer n'affecte pas la sélection dans le document lui-même.

Edit:
Je pense que vous pouvez utiliser Application.Selection.Previous pour obtenir ce que vous avez besoin. Vous pouvez l'utiliser pour restaurer la sélection après l'événement click ou pour agir sur cette section du document, ou les deux.

Je suppose que cela est disponible dans les versions antérieures de Word, mais ont seulement confirmé sa présence en 2007.

+0

Oui, le bouton est intégré dans le document. Quand j'ajoute le bouton au menu supérieur cela fonctionne, mais je dois utiliser le bouton incorporé (demande du conférencier) – Ethylparaben

4

La façon de le faire est de définir la définir la propriété TakeFocusOnClick du CommandButton à False. Voici le code que j'utilise.

Private Sub CommandButton1_Click() 
    Dim Sel As Selection 
    Set Sel = Application.Selection 
    If Sel.Type <> wdSelectionIP Then 
     MsgBox Sel.Text 
    End If 
End Sub 
1

Vous devez changer TakeFocusOnClick en "Faux" dans les préférences de bouton.

Questions connexes