VBA SendKeys - Comment utiliser la méthode SendKeys dans Excel VBA?

Table des matières:

Anonim

Excel VBA SendKeys

Dans cet article, nous verrons un aperçu sur les SendKeys VBA Excel. Avez-vous déjà pensé à créer un programme qui enregistre automatiquement votre feuille de calcul et vous n'avez pas besoin d'appuyer sur le bouton Ctrl + S ou Excel pour le faire? Cela semble être un fantasme, non? Cependant, cela peut être fait. Dans VBA, il existe une instruction de commande appelée SendKeys qui vous permet d'envoyer les pressions de touches en tant que commande à l'application de la même manière que si vous utilisez le clavier pour effectuer la tâche. (Ex. Enregistrement du fichier. Vous utilisez le clavier Ctrl + S pour enregistrer un fichier). Il est recommandé d'utiliser SendKeys comme dernière option lorsque vous automatisez une tâche. La raison derrière cela est, comme nous l'avons déjà mentionné, SendKeys envoie les frappes à l'application qui est actuellement active. Que faire si vous avez une fenêtre d'application active au moment de l'exécution du code sous laquelle vous ne souhaitez pas que les modifications se produisent? Cela donnera des résultats inattendus, non? C'est la seule raison, nous devrions utiliser SendKeys comme dernière option lors de l'automatisation des choses. Cependant, il peut être utilisé pour la petite automatisation, où aucun autre environnement d'application n'est sur le point d'interférer avec celui dont vous vouliez que le changement se produise.

Syntaxe de la méthode SendKeys:

SendKeys(String As String, (Wait))

Où,

Le premier argument 'String As String' spécifie les combinaisons de touches que vous vouliez utiliser dans le programme (Ex. Ctrl + S serait la combinaison de touches).

Wait serait un paramètre facultatif qui prend les valeurs booléennes TRUE et FALSE. Si l'attente a la valeur TRUE, cela signifie que le système attendra que les clés soient traitées, puis passe à la ligne suivante et compile / exécute la même chose. Si la valeur d'attente est FALSE (peut rester vide), le système n'attendra pas le traitement des clés et continuera d'exécuter l'intégralité du code.

Certaines méthodes utilisent que vous pouvez combiner les touches avec Ctrl, Maj ou Alt. Voyons comment nous pouvons le faire. Voici un tableau qui spécifie les combinaisons de touches pour SendKeys avec Ctrl, Shift et Alt:

Clé à combiner avec Opérateur à utiliser avant les touches de combinaison
Décalage + (Clavier Plus signe)
Ctrl (Signe d'opérateur de garde)
Alt % (Signe de pourcentage)

Eh bien, qu'est-ce que cela signifie? Cela signifie que si vous souhaitez utiliser une combinaison de touches en tant que Ctrl + S sous le code, vous pouvez utiliser la méthode SendKeys et le faire avec SendKeys puis un opérateur Caret (^) pour Ctrl puis «s». Il enregistrera la feuille de calcul actuelle dans votre fichier Excel.

Comment utiliser la méthode SendKeys dans Excel VBA?

Nous allons apprendre à utiliser la méthode SendKeys dans Excel en utilisant le code VBA.

Vous pouvez télécharger ce modèle Excel VBA SendKeys ici - Modèle Excel VBA SendKeys

VBA SendKeys - Exemple # 1

Ayons quelques exemples simples qui nous permettront d'approfondir le fonctionnement de la commande VBA SendKeys.

Dans ce premier exemple, nous allons voir une automatisation très simple qui enregistre automatiquement le fichier Excel actuel qui est ouvert. Vous n'avez pas besoin d'appuyer sur le bouton Enregistrer ou sur Ctrl + S pour enregistrer le fichier. Suivez les étapes ci-dessous pour obtenir le résultat.

Étape 1: Ouvrez le module à partir de l'onglet de menu Insertion, comme illustré ci-dessous.

Étape 2: définissez une nouvelle sous-procédure pouvant contenir votre macro.

Code:

 Sub Example_1 () End Sub 

Étape 3: Maintenant, pour enregistrer n'importe quel fichier, vous avez une combinaison de touches du clavier comme Ctrl + S. pour le convertir en code, nous pouvons utiliser l'opérateur caret (^) puis le mot-clé «s» comme argument pour l'instruction SendKeys.

Code:

 Sub Example_1 () Application.SendKeys ("s") End Sub 

Ici, le mot-clé Application spécifie l'application à laquelle nous envoyons les frappes (dans ce cas, l'application Excel). «S» sous les parenthèses spécifie l'opération de clavier similaire Ctrl + S.

Étape 4: exécutez ce code en appuyant sur le bouton Exécuter ou en appuyant sur la touche F5.

Après l'exécution réussie de ce code, votre fichier est enregistré.

VBA SendKeys - Exemple # 2

Maintenant, nous allons voir comment fermer une application en cours en envoyant des touches programmables via le code de macro à l'aide de la méthode SendKeys. Suivez les étapes ci-dessous:

Étape 1: Écrivez la sous-procédure qui peut contenir votre macro sous le module.

Code:

 Sub Example_2 () End Sub 

Étape 2: utilisez la méthode Application.SendKeys pour transmettre les touches programmables du clavier à l'application. Étant donné que le volet VBA actuel peut être fermé avec le raccourci clavier Alt + Q, nous pouvons utiliser «% q» sous macro.

Code:

 Sub Example_2 () Application.SendKeys ("% q") End Sub 

Étape 3: Appuyez sur le bouton Exécuter ou sur F5 pour exécuter ce code. Dès que vous exécutez ce code, l'éditeur Visual Basic actuel se ferme et vous accédez au fichier Excel.

VBA SendKeys - Exemple # 3

Maintenant, nous allons écrire un code qui ouvre automatiquement le Bloc-notes et y écrit un texte automatiquement. Voir la capture d'écran ci-dessous:

Étape 1: Écrivez la sous-procédure qui peut contenir votre macro sous le module.

Code:

 Sub Example_3 () End Sub 

Le shell d'appel permet au système d'ouvrir l'application. Le chemin d'accès est l'endroit où le Bloc-notes.exe est présent. vbNormalFocus est un argument facultatif qui spécifie le focus sur l'ouverture et la restauration de l'application à sa taille et sa position d'origine.

Étape 2: utilisez les touches d'appel et d'envoi en combinaison afin que le système puisse ajouter un texte dans le bloc-notes.

Code:

 Sub Example_3 () Call Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) End Sub 

Étape 3: Ici, nous ajoutons le texte «Bonjour VBA!» À l'aide de SendKeys au bloc-notes. True spécifie le temps d'attente pour la commande SendKeys.

Code:

 Sub Example_3 () Call Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Appelez SendKeys ("Hello VBA!", True) End Sub 

Étape 4: exécutez ce code en appuyant sur la touche F5 ou en cliquant sur le bouton Exécuter.

C'est ainsi que nous pouvons utiliser la méthode SendKeys pour automatiser les applications via la macro VBA.

Choses dont il faut se rappeler

  • Soyez très prudent lorsque vous utilisez SendKeys car cela peut donner des résultats inattendus si plusieurs applications sont ouvertes.
  • Vous pouvez utiliser les SendKeys pour automatiser les petites tâches telles que l'enregistrement d'un fichier Excel ou la fermeture d'un fichier Excel, etc.
  • Utilisez la méthode SendKeys comme dernière option pendant que vous essayez d'automatiser les choses.

Article recommandé

Ceci est un guide des VBA SendKeys. Nous expliquons ici comment utiliser la méthode SendKeys dans Excel VBA ainsi que des exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. Boucle VBA While (Exemples avec modèle Excel)
  2. VBA Environ | Modèles Excel
  3. VBA Goal Seek (exemple)
  4. Comment changer la feuille de calcul de nom dans Excel VBA?