VBA – Fonction SendKeys
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!Learn More!