VBA – Fonction SendKeys

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on décembre 23, 2021

Fonction VBA SendKeys

La méthode VBA SendKeys est utilisée pour envoyer les frappes de touches à l’application active :

Application.SendKeys ("s")

Le code ci-dessus imitera l’appui sur la touche « s » du clavier. La méthode SendKeys prend deux arguments :

  • Keys – La ou les frappes de clavier que vous souhaitez envoyer à l’application sous forme de texte.
  • Wait (facultatif) – Cette valeur peut être True ou False. Si elle est True, Excel attend que les frappes soient traitées avant d’exécuter la ligne de code suivante. Si elle est fausse, Excel poursuit l’exécution de la procédure sans attendre le traitement des touches.

SendKeys est généralement utilisé lors de l’interaction avec d’autres applications, car il s’agit d’un moyen rapide et facile d’accomplir des tâches. Par exemple, vous pouvez utiliser SendKeys pour automatiser Internet Explorer.

Cependant, vous devez être extrêmement prudent lorsque vous utilisez la méthode SendKeys car elle peut avoir des résultats inattendus. Nous vous recommandons d’utiliser SendKeys uniquement en dernier recours et/ou lorsque les erreurs sont tolérables (ou facilement détectables)

Exemples d’Utilisation de la Fonction SendKeys en VBA

Chaque touche en termes de lettres est représentée par son caractère, par exemple a est « a ». Si vous souhaitez utiliser des touches en combinaison avec Ctrl, Shift ou Alt, vous devez faire précéder le code de la touche du caractère suivant :

Touche Code
Ctrl ^
Shift +
Alt %

Le code suivant utilise la méthode SendKeys pour enregistrer le classeur :

Sub UtilisationFonctionSendKeys()

Application.SendKeys ("^s")

End Sub

Comme nous l’avons mentionné précédemment, vous devez être extrêmement prudent lorsque vous utilisez SendKeys. Le code suivant spécifie un temps d’attente de 10 secondes avant que le texte ne soit saisi/envoyé au Bloc-notes. En attendant 10 secondes, vous laissez au Bloc-notes la possibilité de s’ouvrir correctement, ce qui réduit les risques d’erreur.

Remarque : ce code utilise la méthode Application.Wait.

Sous UsingSendKeysWithWait()

Appelle Shell("C:\Windows\system32\Notepad.Exe", vbNormalFocus)
Application.Wait (Now() + TimeValue("00:00:10"))
Appeler SendKeys("This is Some Text", True)

End Sub

Le résultat après 10 secondes d’attente est le suivant :

SendKeys peut être un moyen extrêmement rapide et facile d’accomplir des tâches. Cependant, les risques d’erreurs sont relativement élevés. N’utilisez SendKeys que lorsque ce risque est acceptable !

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!
vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA