Accueil site Tableur Programmation Outils XML Téléchargement Informations



Programmation

Pour commencer

Macro et procédure 
 
Intro
Pour commencer
  Macro et procédure
  Création de l'interface
Travaux pratiques
  TP1
  TP2
  TP3
 
Enregistrer, exécuter, gérer une macro
Menu Outils-Macros
Le menu Outils contient la commande Macros qui donne accès principalement aux actions suivantes :
  • enregistrer une macro ;
  • exécuter une macro ;
  • gérer les macros (créer, éditer, renommer, supprimer, associer à un outil d'une barre...).


Enregistrement de macros
Les étapes
Après avoir cliqué sur Outils/macros/Enregistrer une macro, une barre apparaît pour arrêter la macro (analogue à Excel). Lorsqu'on arrête la macro, une boîte de dialogue apparaît pour enregistrer la macro dans un module existant ou à créer. Il y a deux dossiers (bibliothèques) où on peut créer un module de code : le dossier Mes macros et le dossier ayant le nom du classeur en cours (par défaut Sans nom1). Le premier dossier est réservé aux codes devant être visibles par tous les classeurs, le dernier pour les codes uniquement visibles depuis le classeur actif. Pour créer un nouveau module de code (si c'est la première macro il est nécessaire de créer un nouveau module, ensuite on peut enregistrer d'autres macros dans le même module), cliquer sur Sans nom1 puis sur le bouton Nouveau. Une petite boîte de dialogue apparaît pour la saisie du nom du module (par défaut Module1) :


Saisir le nom (ou laisser Module1) et cliquer sur le bouton Ok. Cette petite boîte disparaît et dans la boîte précédente une nouvelle macro nommée Main est créée automatiquement ce qui correspond à une procédure Main vide qui est créée dans le module de code de l’éditeur OpenOffice Basic. On peut alors donner un autre nom à la macro en remplissant le champ Nom de la macro sinon elle s’appellera Main et son code écrasera (après confirmation) la procédure Main vide. Finir en cliquant sur le bouton Enregistrer. Dans le dossier Sans nom1 est alors créé un sous-dossier Standard et un sous-sous-dossier Module1 et la boîte de dialogue se ferme.
Le code généré
Il fait appel au service de l'interface utilisateur (commandes des menus) : UnoService("com.sun.star.frame.DispatchHelper")
Il n’utilise pas les objets, ce qui le rend particulièrement illisible et donc quasiment inutilisable dans la plupart des cas. Il vaut mieux donc écrire son propre code par exemple en OpenOffice Basic (voir plus loin Gérer les macros).
Exécuter une macro
Après avoir cliquer sur Outils/macros/Exécuter la macro, on doit choisir dans la boîte de dialogue la macro à exécuter :


Dans la boîte de dialogue ci-dessus, dans la liste de gauche, dérouler le dossier qui contient la macro (Mes macros ou Sans nom1) et cliquer sur le module (Module1) : dans la liste de droite apparaît la ou les macros existantes dans le module, cliquer sur celle voulue puis sur le bouton Exécuter.
Gérer les macros
En dehors de renommer et supprimer une macro, la commande Outils\Macros\Gérer les macros permet surtout de créer (sans enregistrer) du code ou éditer du code d'un module existant. En cliquant sur Gérer les macros, on déroule un sous menu qui propose un choix de langage (OpenOffice.org Basic, JavaScript, BeanShell, Python...).


Cliquer sur OpenOffice Basic, la boîte de dialogue Macro OpenOffice Basic s'affiche :


Rappel :
  • le dossier Mes macros est réservé aux codes devant être visibles par tous les classeurs ;
  • le dossier ayant le nom du classeur en cours (par défaut Sans nom1, c'est le nom qui s'affiche s’il n’a pas été sauvegardé sous un autre nom), est destiné aux codes devant être visible uniquement depuis ce classeur.
Si le classeur ne contient aucune macro ni aucune procédure, pour écrire du code (programmer), il faut d'abord créer un nouveau module de code. Pour cela, dans la boîte de dialogue Macro OpenOffice Basic ci-dessus :
  • cliquer sur le nom du classeur (Sans nom1 par défaut) et cliquer sur le bouton Nouveau, une boîte de dialogue apparaît pour saisir le nom du module (par défaut Module1). En validant par le bouton Ok, une nouvelle procédure Main est créée automatiquement (ainsi qu’un dossier Standard et un sous-dossier avec le nom donné au module) et on bascule alors dans l'environnement de développement (sans avoir besoin de cliquer sur le bouton Editer).
Pour créer une nouvelle procédure dans un module existant :
  • sélectionner le module voulu, donner un nom dans le champ Nom de la Macro et cliquer sur le bouton Nouveau ce qui a pour effet de créer cette nouvelle procédure et de basculer dans l'environnement de développement.
Pour éditer une procédure particulière d'un module (utile s'il y en a de nombreuses) :
  • sélectionner le module, cliquer dans la liste de droite (Macros existantes dans ….) sur la procédure voulue puis sur le bouton Editer pour basculer dans l'environnement de développement avec la procédure visible dans la fenêtre.
Pour créer un nouveau module pour ce classeur :
  • sélectionner le dossier Standard et cliquer sur le bouton Gérer, une nouvelle boîte de dialogue s’affiche :


Dans cette boîte cliquer sur le bouton Nouveau, un petite boîte de dialogue demande alors le nom du nouveau module (par défaut Module2, ...). Après validation du nom, retour à la boîte précédente (ci-dessus). On peut aussi supprimer un module (en le sélectionnant le bouton Supprimer devient actif). Pour finir cliquer sur le bouton Fermer, la liste des modules est alors mise à jour.
EDI (Environnement de développement intégré)
Si c'est un nouveau module (ne contenant encore aucune procédure), on a la fenêtre suivante dans laquelle la procédure Main (nom de la procédure par défaut) a été renommée EssaiCode :


C'est dans la zone centrale (entre Sub NomProcédure et End Sub) que l'on écrit le code dans le langage Basic d'OpenOffice et de préférences en utilisant les objets exposés par l'API (Application programming interface ou en français : interface de programmation) d'OpenOffice (organisée en différents services) dont celui chargé par défaut (StarDesktop).
Les autres zones concernent le débogage.

L'onglet en bas renseigne sur le module actif (le classeur ouvert peut contenir plusieurs modules).

La première barre d'outils met à disposition les outils courants (Nouveau, Ouvrir, Enregistrer, Imprimer, Couper, Copier, Coller, ...).
Au début de la deuxième barre d'outils, la liste déroulante permet de choisir la bibliothèque désirée (celle personnelle, du classeur en cours ou celles mise à disposition par OpenOffice), les outils suivants de cette barre sont liés à la compilation/exécution et au débogage. Les deux derniers outils permettent d'importer/exporter du code source basic sous forme de fichier texte (avec l'extension .bas).
Ressource complémentaire
- Sécurité et macro

© FormTice avril 2020 - Tous droits réservés. Limitation à l'usage non commercial, privé ou scolaire.