Aller au contenu

Enregistrement, exécution et modification de macros VBA

Vous pouvez créer et exécuter des macros Visual Basic pour Applications (VBA) pour simplifier et automatiser les tâches routinières.

Exécution de macros VBA

Vous pouvez exécuter des macros VBA enregistrées dans votre fichier de document de session à partir du panneau Macro. Il s'agit d'un moyen pratique pour suivre et exécuter vos macros sans ajouter de boutons au ruban. Vous pouvez également exécuter d'autres types de macros à partir de ce panneau après les avoir exécutés à partir de la boîte de dialogue Exécuter une macro.

Exécution d'une macro à l'aide du panneau Macro

Utilisez le panneau Macro pour exécuter les macros VBA enregistrées dans votre fichier de document de session ou pour exécuter d'autres macros, comme des macros référencées, des macros EML ou des macros créées avec d'autres produits, que vous avez déjà exécutées dans cette session. Le panneau Macro permet de suivre et d'exécuter les macros qui s'appliquent à une session sans ajouter de boutons au ruban. Il n'affiche que les macros qui s'appliquent à la session sélectionnée.

Utilisation du panneau Macro

Pour exécuter des macros à partir du panneau Macro

  1. Sous l'onglet Session, dans le groupe Macros, cliquez sur Afficher le panneau Macro.

    Le panneau Macro comporte trois onglets :

    L'onglet Disponible affiche les macros VBA qui sont enregistrées dans le fichier de document de session.

    Remarque

    L'onglet Disponible n'affiche pas les macros EML, les macros créées avec d'autres produits ou les macros qui ne sont pas enregistrées dans le fichier de document de session.

    L'onglet Récent affiche toutes les macros que vous avez déjà exécutées au cours de cette session. Cela inclut les macros VBA ainsi que les autres macros prises en charge exécutées, comme les macros EML ou les macros créées avec d'autres produits.

    L'onglet Favoris affiche toutes les macros que vous avez marquées comme favoris.

  2. Pour exécuter une macro, placez le pointeur de la souris sur la macro à exécuter, puis cliquez sur le bouton de lecture situé à gauche de la macro.

  3. Pour arrêter une macro, cliquez sur le bouton Arrêter situé en regard de celle-ci.

  4. Pour plus d'informations sur une macro, placez le pointeur de la souris sur celle-ci.

    Dans le cas d'une macro VBA, une info-bulle affiche le projet et le module VBA dans lesquels se trouve la macro.

    Pour les autres macros, une info-bulle indique le type de macro et son nom de fichier complet.

Exécution d'une macro à partir de la boîte de dialogue Exécuter une macro

Vous devez utiliser la boîte de dialogue Exécuter une macro pour exécuter des macros qui ne sont pas enregistrées dans le fichier de document de session la première fois que vous exécutez ces macros. Après avoir exécuté une macro pour la première fois, vous pouvez l'exécuter à partir de l'onglet Récent du panneau Macro.

Pour exécuter une macro à partir de la boîte de dialogue Exécuter une macro

  1. Ouvrez la boîte de dialogue Exécuter une macro. Les étapes à suivre dépendent de votre mode d'interface utilisateur.

    Mode d'interface utilisateur Étapes
    Ruban Dans l'onglet Session, dans le groupe Macros, cliquez sur Exécuter une macro.
    Classique et MDI classique Dans le menu Macro, sélectionnez Macros.
  2. Sélectionnez le type de macro à exécuter, puis ouvrez-la macro concernée.

    La macro s'exécute.

    Remarque

    Après avoir exécuté une macro pour la première fois, vous pouvez l'exécuter à partir de l'onglet Récent du panneau Macro.

Exécution d'une macro créée dans un autre produit

Vous pouvez exécuter les macros VBA créées dans Reflection, ainsi que la plupart des macros créées à l'aide des produits Extra! et Reflection hérités. Vous pouvez également exécuter la majorité des macros créées à l'aide des produits Micro Focus RUMBA, IBM Personal Communications, OpenText HostExplorer et Brandon Systems/Jolly Giant QWS 3270. Cependant, vous ne pouvez exécuter des macros que sur des emplacements autorisés.

Exécution de macros Extra! dans Reflection Desktop

Plusieurs actions associées à des macros (comme Exécuter une macro Espace de travail de Reflection) sont disponibles à partir de la boîte de dialogue Sélectionner une action.

Vous pouvez également exécuter une macro en associant une action à un contrôle. Pour plus d'informations, reportez-vous à la rubrique Ajout d'un bouton pour exécuter une macro.

Pour exécuter des macros créées avec d'autres produits

  1. Ouvrez la boîte de dialogue Exécuter une macro. Les étapes à suivre dépendent de votre mode d'interface utilisateur.

    Mode d'interface utilisateur Étapes
    Ruban Reflection Dans l'onglet Macros du groupe Avancé, cliquez sur Exécuter une macro.
    Navigateur Reflection Dans le menu de Reflection, sélectionnez Outils, Macro, puis Exécuter une macro.
    TouchUx Touchez l'icône symbolisant une clé à molette, puis sélectionnez Afficher la boîte de dialogue Exécuter une macro sous Macro.
  2. Dans la boîte de dialogue Exécuter une macro, sélectionnez la macro à exécuter.

    Option Action
    Macro Reflection Workspace Afficher les macros dans le document de session actif. Sélectionnez cette option pour exécuter des macros créées dans des documents de session Reflection.
    Exécuter une macro dans le projet commun et dans d'autres documents. Sélectionnez l'option dans le menu Macros dans :
    Macro Reflection héritée dans ce fichier Exécuter des macros héritées dans le document actif. Ces macros comportent des fichiers de configuration hérités (.rsf, .r2w ou .r4w), et dans Reflection, des documents de session (.rd3x, .rd5x, .rdox) qui ont été précédemment convertis à partir de fichiers de configuration.
    Macro Reflection héritée dans un autre fichier Spécifier et exécuter une macro dans un fichier SharedMacro (.rma) ou dans un fichier de configuration (.rsf, .r2w ou .r4w).
    Macro RB héritée Spécifier et exécuter une macro Reflection Basic (.rbs).
    Script RCL hérité Spécifier et exécuter un script RCL hérité. Disponible uniquement pour utilisation dans des documents de session VT.
    Macro Extra! Spécifier et exécuter un fichier macro Extra! (.ebm).
    Macro Rumba Spécifier et exécuter un fichier macro Micro Focus Rumba (.rmc).
    Macro QWS Spécifier et exécuter un fichier macro Brandon Systems\Jolly Giant QWS3270 (.jgs).
    Macro IBM Personal Communications Spécifier et exécuter un fichier macro IBM Personal Communications (.mac).

    Remarque

    Les options de macro héritée sont disponibles uniquement si des fonctionnalités de compatibilité sont installées. En outre, pour exécuter des macros Extra! et Reflection héritées à partir de fichiers externes, vous devez indiquer, dans la boîte de dialogue Configuration de la sécurité de la macro et de l'API, le type de macro héritée à exécuter.

  3. Si vous ne trouvez pas de macro de type Espace de travail, sélectionnez Définir les références VBA dans la fenêtre Paramètres pour ouvrir la boîte de dialogue Ajouter une macro de référence VBA, puis vérifiez la liste des références manquantes (signalées par le bouton ). Après avoir résolu le problème (en général, un fichier manquant ou un lecteur réseau déconnecté), fermez votre session, puis ouvrez-la à nouveau.

Enregistrement et suppression de macros VBA

Vous pouvez enregistrer une macro VBA afin d'automatiser votre interaction avec les applications hôte, y compris les opérations suivantes :

  • Envoi de données ou saisie de texte dans l'application hôte.

  • Coupe, copie ou collage de texte ou de données d'une application hôte à une autre.

  • Basculement d'onglets pour passer d'une application hôte à une autre.

  • Sélection d'un texte avec une souris ou utilisation de la souris pour déplacer le curseur (les clics de souris sont enregistrés en tant que positions du curseur.)

Vous pouvez enregistrer les éléments suivants :

  • Interaction avec les paramètres de Reflection et les fonctions de productivité (telles que la vérification orthographique, l'extension automatique et la saisie semi-automatique).

  • Connexion à l'hôte ou déconnexion de celui-ci.

  • Interaction avec les applications Web.

  • Coupe ou collage à partir d'un hôte vers une application externe (par exemple, le bloc-notes).

Enregistrement d'une macro à partir du ruban de Reflection Desktop

Enregistrement d'une macro à partir de l'interface classique de Reflection Desktop

Meilleures pratiques relatives à l'enregistrement de macros

Appliquez les meilleures pratiques ci-dessous pour enregistrer correctement une macro afin d'éviter les problèmes qui peuvent survenir en cas d'utilisation d'une connexion réseau lente. La saisie très rapide lors de l'enregistrement ou la « frappe intuitive » dans une session avec une connexion réseau lente peut entraîner la lecture inopinée de la macro. Suivez les meilleures pratiques ci-dessous pour obtenir les meilleurs résultats.

  • Planifiez l'enregistrement à l'avance pour vous assurer de bien connaître les étapes à suivre, les touches à utiliser et les écrans d'hôte attendus.

  • Lors de l'enregistrement de la macro, après avoir appuyé sur une touche pour envoyer des données à l'hôte, attendez que l'écran suivant de l'hôte s'affiche entièrement (n'hésitez pas à attendre quelques secondes de plus) avant d'appuyer sur les touches suivantes.

  • Si votre macro n'est pas lue comme prévu, supprimez-la et enregistrez-la à nouveau avec soin en effectuant lentement les étapes voulues.

Si vous enregistrez une macro lentement, ses performances d'exécution ne sont pas réduites, car les macros s'exécutent toujours à la vitesse la plus élevée possible pendant la lecture. L'enregistrement d'une macro bien pensée et planifiée vous permet d'obtenir les meilleurs résultats.

Pour enregistrer une macro

  1. Choisissez d'enregistrer une macro. Les étapes à suivre dépendent de votre mode d'interface utilisateur.

    Mode d'interface utilisateur Étapes
    Ruban Dans l'onglet Macros, dans le groupe Avancé, cliquez sur Enregistrer une macro VBA.
    Navigateur Reflection Dans le menu Reflection, sélectionnez Outils, Macro, puis Enregistrer une macro VBA.
    TouchUx Touchez l'icône symbolisant une clé à molette, puis sélectionnez Enregistrer une macro VBA sous Macro.
  2. Effectuez la ou les tâches à automatiser.

  3. (Facultatif) Si vous devez interrompre l'enregistrement pour effectuer une autre tâche, cliquez sur Interrompre l'enregistrement. Lorsque vous êtes prêt à reprendre l'enregistrement, cliquez de nouveau sur Interrompre l'enregistrement.

  4. Lorsque vous avez terminé d'enregistrer la macro, cliquez sur Arrêter l'enregistrement.

    La boîte de dialogue Enregistrement terminé apparaît.

  5. Nommez la macro et choisissez l'emplacement auquel vous voulez l'enregistrer.

  6. Si vous souhaitez exécuter la macro à chaque connexion de la session, sélectionnez Définir comme macro de connexion.

    Remarque

    Vous pouvez affiner les macros enregistrées à l'aide de Visual Basic Editor. Pour plus d'informations, reportez-vous à la rubrique Modification d'une macro.

  7. Si votre macro n'est pas lue comme prévu, supprimez-la et suivez les meilleures pratiques pour l'enregistrer à nouveau correctement.

Pour supprimer une macro

  1. Ouvrez la boîte de dialogue Exécuter une macro. Les étapes à suivre dépendent de votre mode d'interface utilisateur.

    Mode d'interface utilisateur Étapes
    Ruban Dans l'onglet Session, dans le groupe Macros, cliquez sur Exécuter une macro.
    Classique et MDI classique Dans le menu Macro, sélectionnez Macros.
  2. Sélectionnez Macro Reflection Workspace.

  3. Dans la boîte de dialogue Macros, sélectionnez la macro à supprimer, puis cliquez sur Supprimer.

Création d'une macro dans Visual Basic Editor

Dans la mesure du possible, créez toujours les macros dans des modules pour renforcer l'intégrité et la stabilité de votre programme. La seule exception à cette règle concerne les procédures d'événement, qui sont ajoutées directement aux objets Reflection.

Pour créer une macro dans l'éditeur Visual Basic

  1. Dans Reflection, ouvrez un document de session.

  2. Ouvrez Visual Basic Editor. Les étapes à suivre dépendent de votre mode d'interface utilisateur.

    Mode d'interface utilisateur Étapes
    Ruban Reflection Dans l'onglet Macros, cliquez sur Visual Basic.
    Navigateur Reflection Dans le menu Reflection, sélectionnez Outils, Macro, puis Visual Basic.
    TouchUx Touchez l'icône symbolisant une clé à molette, puis sélectionnez Visual Basic sous Macro.

    Le document de session apparaît en tant que projet dans l'Explorateur de projet, par exemple, Projet (Ma session.rd3x).

  3. Dans l'Explorateur de projet, sélectionnez le projet dans lequel vous souhaitez enregistrer la macro, puis choisissez Insertion > Module pour créer un module.

  4. Double-cliquez sur le module que vous avez créé.

    La fenêtre Code apparaît.

  5. Sélectionnez Insertion > Procédure, saisissez un nom dans la zone Nom, puis cliquez sur OK.

    Le nom que vous choisissez doit respecter les règles syntaxiques Visual Basic propres aux macros. Pour plus d'informations, reportez-vous à la rubrique Dénomination des macros.

  6. Saisissez le code de votre macro entre les instructions Sub (ou Public Sub) et End Sub.

    L'aide contextuelle est disponible pour les commandes Visual Basic. Placez le point d'insertion dans une commande et appuyez sur F1.

Modification d'une macro

Utilisez Visual Basic Editor pour modifier les macros de Reflection.

Pour modifier une macro

  1. Ouvrez Visual Basic Editor. Les étapes à suivre dépendent de votre mode d'interface utilisateur.

    Mode d'interface utilisateur Étapes
    Ruban Reflection Dans l'onglet Macros, cliquez sur Visual Basic.
    Navigateur Reflection Dans le menu Reflection, sélectionnez Outils, Macro, puis Visual Basic.
    TouchUx Touchez l'icône symbolisant une clé à molette, puis sélectionnez Visual Basic sous Macro.

    La boîte de dialogue Macros apparaît.

  2. Dans la zone Nom de la macro, sélectionnez le nom de la macro à modifier et cliquez sur Modifier.

  3. Dans Visual Basic Editor, saisissez ou modifiez les commandes de macro.

  4. Dans le menu Fichier, choisissez Enregistrer.

Exécution d'une macro de démarrage

Vous pouvez configurer une macro Visual Basic pour Applications (VBA) pour qu'elle s'exécute au lancement d'un espace de travail de Reflection plutôt qu'à l'ouverture ou à la connexion d'une session à l'hôte.

Cette configuration vous permet de rassembler des informations concernant le mode de connexion des utilisateurs et de les utiliser pour définir les paramètres de la session.

Par exemple, vous pouvez créer une macro de démarrage pour réaliser les tâches suivantes :

  • Affichage d'une boîte de dialogue VBA pour recueillir des informations sur l'utilisateur avant la connexion à l'hôte

  • Lecture d'un fichier .ini

  • Vérification de la disponibilité de l'hôte ou du routeur

  • Configuration des paramètres de Reflection

attention

Seules les macros du projet commun peuvent être configurées pour s'exécuter au démarrage de l'espace de travail. Ne configurez pas l'action « Exécuter une macro Reflection Workspace » pour exécuter une macro présente dans un document de session (rd0x, rd3x, rd5x). Cela peut affecter le démarrage de Reflection.

Pour configurer une macro de démarrage

  1. Ouvrez la boîte dialogue Paramètres de l'espace de travail de Reflection. Les étapes à suivre dépendent de votre mode d'interface utilisateur.

    Mode d'interface utilisateur Étapes
    Ruban Dans le menu Fichier ou sur le bouton Reflection (si vous utilisez l'apparence Office 2007), sélectionnez Paramètres pour Espace de travail de Reflection.
    Navigateur Reflection Dans le menu Reflection, sélectionnez Paramètres, puis Paramètres pour Espace de travail de Reflection.
    TouchUx Touchez l'icône symbolisant un engrenage, puis sélectionnez Espace de travail de Reflection.
  2. Sous Paramètres de l'espace de travail, cliquez sur Configuration des paramètres de l'espace de travail.

  3. Sous Espace de travail et documents, dans la liste Lors du démarrage de l'espace de travail, sélectionnez Exécuter une action au démarrage.

  4. Cliquez sur Sélectionner une action.

  5. Sous Action, sélectionnez Exécuter une macro de type Espace de travail de Reflection.

  6. Sous Paramètres pour l'action, choisissez Sélectionner une macro.

  7. Dans le champ Sélectionner une macro, choisissez la macro à exécuter au démarrage de Reflection.

Configuration des macros exécutées avant ou après une connexion hôte

Si vous avez créé une macro pour votre session ou espace de travail, vous pouvez configurer la session de sorte qu'elle exécute une macro de connexion.

Pour configurer une macro de connexion

  1. Ouvrez la fenêtre Paramètres. Les étapes à suivre dépendent de votre mode d'interface utilisateur.

    Mode d'interface utilisateur Étapes
    Ruban ou navigateur Reflection À partir d'une session ouverte dans Reflection, cliquez sur dans la barre d'outils Accès rapide.
    TouchUx Appuyez sur l'icône symbolisant un engrenage, puis sélectionnez Paramètres des documents.
  2. Dans la boîte de dialogue Paramètres, effectuez l'une des opérations suivantes :

    • (VT) Cliquez sur Configuration des paramètres de connexion.

    • (3270 ou 5250) Cliquez sur Configuration des paramètres de connexion avancés.

  3. Sous Action de connexion, indiquez si la macro doit être exécutée avant ou après la connexion initiale.

  4. Cliquez sur Sélectionner une action et sélectionnez la macro à exécuter.

Affectation de noms aux macros

Respectez les règles syntaxiques suivantes pour les noms de macros Visual Basic (notamment les procédures, les constantes, les variables et les arguments) :

  • Ils doivent commencer par une lettre. (Les noms ne respectent pas la casse, mais ils conservent la capitalisation.)

  • Utilisez uniquement des caractères alphanumériques et le trait de soulignement ( _ ). Les espaces et autres symboles ne sont pas autorisés.

  • Utilisez moins de 255 caractères.

  • Évitez les noms de commandes Visual Basic ou Reflection. Ou, si vous utilisez un nom de macro identique à celui d'une commande, lorsque vous souhaitez utiliser la commande, entrez son nom complet. (Pour ce faire, vous devez spécifier le nom de la bibliothèque associée devant le nom de la commande. Par exemple, si le nom de votre macro est « Bip », vous pouvez uniquement appeler l'instruction Bip de Visual Basic en utilisant VBA. Bip.)

  • Attribuez des noms uniques aux macros d'un module. Visual Basic ne vous autorise pas à conserver deux macros avec le même nom dans le même module de code. En revanche, deux macros avec le même nom peuvent exister, mais dans deux modules de code différents. * Par exemple, vous ne pouvez conserver deux macros intitulées « Démarrage » que dans deux modules de code différents. * Pour appeler une macro dont le nom existe déjà dans un autre module de code, vous devez entrer le nom complet de la macro. (Par exemple, « Module1.Démarrage » appelle la macro Démarrage dans le Module1.)