Basic Editor
L'éditeur OpenOffice.org Basic
ECRIRE UNE MACRO EN BASIC (Alt + F11)
Menu Outils, Macros, Gérer les macros, OpenOffice.org Basic
Pour écrire directement une procédure Basic, dans la boite de dialogue Macro, sélectionnez dans la liste de gauche l'item "Standard" sous le nom de votre classeur CALC et cliquez sur le bouton "Nouveau".
Un nouveau module de code est créé et l'éditeur OpenOffice.org Basic s'ouvre :
◊ REM signifie REMarque (un commentaire). Peut être remplacée par l'apostrophe.
◊ Sub maMacro(), est le début d'une macro avec son nom
◊ End Sub, la fin de la macro
Voir une photo d'écran de l'éditeur OpenOffice.org 3.0 sur le site non officiel d'OpenOffice.org.
Premier exemple de procédure
Faire apparaitre un message à partir d'un bouton
Sub MonMessage()
' Boite de dialogue (0 pour bouton Ok seul, 1 pour Ok/Annuler...)
MsgBox "Bienvenue dans Calc !", 0, "Message"
End Sub
Voir un exemple en ligne d'utilisation de la MsgBox' Boite de dialogue (0 pour bouton Ok seul, 1 pour Ok/Annuler...)
MsgBox "Bienvenue dans Calc !", 0, "Message"
End Sub
Exécuter une macro à partir d'un bouton
Pour relier cette macro à un bouton, aller dans Calc dans le menu Affichage, Barre d'outils, Contrôles de formulaire. Clic droit sur votre bouton, menu Contrôle, Onglet Evénements, Lors du déclenchement... Sélectionner votre macro. N'oubliez pas de désactiver le mode Conception (sur la barre d'outils) avant de tester votre bouton.
Procédure évènementielle
Pour lancer cette macro automatiquement à l'ouverture de votre fichier Calc (soit une procédure évènementielle), faite un copier/coller de votre macro depuis votre module "[monfichier Calc.ods].Standard" vers le module "[Mes macros et boîtes de dialogue].Standard" via le menu déroulant de l'éditeur Basic. Ouvrez ensuite la liste des macro (Alt + F11) et cliquez sur le bouton "Assigner" puis sur l'onglet "Evènements". Lors du test, ne vous souciez pas du message d'alert.
Quelques exemples de Macro
Sub quelques_exemples()
' Ajuster les lignes de la feuille active (400 pour une hauteur de 0,40 cm)
ThisComponent.currentController.activeSheet.Rows.Height = 400
' Saisir une formule (code incomplet - voir au dessus)
Dim oMaCell As Object
oMaCell.setFormula("=IF(A1>B1;""NON"";""OUI"")")
'Remplir une cellule (code incomplet - voir au dessus)
Dim oMaCell As Object
oMaCell.CellBackColor = RGB(0,0,0) 'indique la couleur de fond
End Sub
' Ajuster les lignes de la feuille active (400 pour une hauteur de 0,40 cm)
ThisComponent.currentController.activeSheet.Rows.Height = 400
' Saisir une formule (code incomplet - voir au dessus)
Dim oMaCell As Object
oMaCell.setFormula("=IF(A1>B1;""NON"";""OUI"")")
'Remplir une cellule (code incomplet - voir au dessus)
Dim oMaCell As Object
oMaCell.CellBackColor = RGB(0,0,0) 'indique la couleur de fond
End Sub
Pour aller plus loin
◊ Guide de programmation de OpenOffice.org BASIC
◊ How To Programmation
◊ FAQ OpenOffice