C. LES MACRO-COMMANDES
C. LES MACRO-COMMANDES
Les macro-commandes vont permettre d'automatiser des procédures et d'utiliser des boucles afin d'automatiser des processus en prenant des orientations différentes en fonction du résultat de ces tests. C'est une suite de tâches regroupées en une seule commande, créée et sauvegardée par l’utilisateur afin d’en disposer pour des travaux répétitifs. Une macro peut être liée à un document ou à un modèle
L'utilisateur doit alors se plier à un certain nombre de contraintes avant de se lancer dans leur utilisation :
- Faire une étude préalable et éventuellement, représenter graphiquement sa structure
- Observer les règles de l'art dans le développement même
- Documenter son code afin qu'il puisse être repris avec un minimum de problème par quelqu'un d'autre
1. LA SÉCURITÉ DES MACROS
Les macros étant des programmes, elles peuvent être employées à des fins néfastes. Pour prévenir ce type d'utilisation, deux moyens sont mis en œuvre :
- Les documents contenant des macros ont une extension particulière qui permet de les reconnaître.
- Dans l'environnement de travail standard, les macros sont désactivées.
a) LES DOCUMENTS PRENANT EN CHARGE LES MACROS
Word refuse d'enregistrer au format standard un document contenant des macros. Un type particulier de document prend en charge les macros.
MENU FICHIER
<clic g> sur
<clic g> sur
dans "type", sélectionner
<clic g> sur
Les documents contenant des macros sont des documents particuliers au format .docm
b) L'ACTIVATION DU CONTENU
L'ouverture d'un document contenant des macros affiche un message d'alerte, lors de la première ouverture. Vous pouvez, à partir de ce message, activer les macro-commandes si vous êtes sûr de leur origine.
BOUTON GAUCHE
à la suite du message
<clic g> sur
La liste des documents approuvés peut être effacée. Le message d'avertissement réapparaitra alors à la prochaine ouverture du document
dans les paramètres de confidentialité, ,
<clic g> sur
c) LA GESTION DE LA SECURITE
Le paramétrage par défaut de la sécurité des macros est satisfaisant.
MENU FICHIER
dans le volet de gauche, <clic g> sur
dans le volet de gauche,
<clic g> sur
dans le volet de gauche,
Il est risqué de désactiver le blocage des macro-commandes hormis dans un environnement connu et sécurisé
Il est cependant pratique d'indiquer que des emplacements sont surs.
MENU FICHIER
dans le volet de gauche, <clic g> sur
dans le volet de gauche,
<clic g> sur
dans le volet de gauche,
<clic g> sur
désigner l'emplacement
pour valider
les macros ne seront pas bloquées dans les documents de cet emplacement
2. LES MACROS SIMPLES
Une macro-commande est une suite de tâches regroupées en une seule commande, créée et sauvegardée afin d’en disposer pour des travaux répétitifs. Le plus simple st alors de repérer les groupes de lignes répétitives et de faire autant de copier/coller que nécessaire.
Il est rare d'avoir besoin de créer des macros dans Word, contrairement à Excel
a) L'ONGLET DÉVELOPPEUR
Cet onglet, normalement masqué, doit être affiché pour pouvoir enregistrer des macros.
MENU FICHIER
dans le volet de gauche, <clic g> sur
dans le volet de gauche,
cocher dans le volet droit
pour valider
L'onglet "développeur" s'affiche vers la fin du ruban
Afficher l'onglet "développeur"
b) L’ENREGISTREMENT D’UNE MACRO-COMMANDE
Pour créer une macro-commande, il faut lancer l’enregistrement, effectuer successivement les actions à enregistrer puis arrêter l'enregistrement.
ONGLET "DÉVELOPPEUR"
groupe "code" (1er bloc)
tout préparer pour le début de l'enregistrement
(les conditions doivent être exactement les mêmes que lorsque l'enregistrement sera "joué")
<clic g> sur
saisir son nom
indiquer le classeur lié
saisir une description courte
pour valider
effectuer les actions
<CLIC G> sur
Il est aussi possible d'arrêter la macro-commande en cliquant dans la barre d'état sur
Il est intéressant d'afficher les macros avec une icône dans la barre d'outils "accès rapide"
BARRE ACCÈS RAPIDE
<clic g> sur
<clic g> sur
dans le volet de gauche
<clic g> sur
dans le volet du milieu
choisir la catégorie "macros"
dans le volet de droite
choisir les documents concernés
sélectionner la macro
<clic g> sur
la macro-commande s'affiche dans le volet droit
sélectionner la macro
<clic g> sur
saisir un nom pour l'icône et choisir une image
pour valider
MENU FICHIER
<clic g> sur
dans le volet de gauche
<clic g> sur
dans le volet du milieu
choisir la catégorie "macros"
dans le volet de droite
choisir les documents concernés
sélectionner la macro
<clic g> sur
la macro-commande s'affiche dans le volet droit
sélectionner la macro
<clic g> sur
saisir un nom pour l'icône et choisir une image
pour valider
La macro peut être associée au document (auquel cas, il devra prendre la terminaison .docm) ou à un modèle de document
Créer une macro-commande appelé "pdf" enregistrant le document au format "pdf".
L'associer à un outil dans la barre d'outils "accès rapide" (voir tableaux.docm)
Le code la macro-commande peut être affiché et modifié dans une fenêtre Visual Basic en cliquant sur de :
Sub pdf()
'
' pdf Macro
' imprime en pdf
'
ActivePrinter = "Microsoft Print to PDF"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentWithMarkup, Copies:=1, Pages:="", PageType:= _
wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Ouvrir tableaux.docx
Créer une macro-commande transformant les 2 premiers tableaux en texte avec tabulations
Je dois transformer mon document Word en un fichier e'pub (ou mobi) pour le diffuser sur des supports numériques.
Hors, le mode "tableau" est mal supporté par les formats numériques, notamment parce qu'ils ont souvent des dimensions absolues et non relatives et qu'ils débordent alors du périmètre de lecture ou s'affichent sur plusieurs pages. Il est alors intéressant de transformer tous les tableaux en paragraphes avec tabulations (et après de transformer ces tabulations, mal supportées elles aussi, en espace(s) ou autre et ce manuellement, car chaque cas est souvent un cas particulier)
Le document concerné affiché :
je clique sur <clic g> sur du groupe "code" de l'onglet
je la nomme "suppression_tableaux" et clique sur pour lancer l'enregistrement
je fais <ctrl> <origine> pour aller au début du document
je clique sur de puis
je choisis et clique sur
dans l'onglet , je clique sur
je choisis puis pour valider
je clique sur de la boîte de dialogue "atteindre"
je fais la même chose
je clique sur
Pour associer la macro à une icône de la barre d'outils rapide :
je clique sur de
je clique sur
dans le volet de gauche, je sélectionne
dans le volet de droite
je choisis les documents concernés
dans le volet du milieu
je choisis la catégorie "macros",
je sélectionne le séparateur
dans le volet droit, je sélectionne l'outil avant "pdf"
je clique sur
je choisis la macro "suppression_tableaux"
je clique sur , la macro-commande s'affiche dans le volet droit
je sélectionne la macro et clique sur
je saisis un nom pour l'icône et choisis une image
pour valider
c) L’EXÉCUTION D’UNE MACRO-COMMANDE
Les macro-commandes peuvent être lancées par l'outil "macros", avec le bouton de la barre d’outils "accès rapide" ou éventuellement un raccourci clavier.
ACCÉS.RAPIDE
<clic g> sur l'icône de la barre associée à une macro
"DÉVELOPPEUR"
groupe "code" (1er bloc)
<clic g> sur
sélectionner la macro
<clic g> sur
Bien se placer dans un environnement de départ d'exécution identique à celui de l'enregistrement ou le gérer dans la macro
Tester la macro-commande créée
d) LA MODIFICATION DE LA MACRO-COMMANDE
Le langage utilisé pour la macro-commande est assez lisible et peut, avec un peu d'expérience, être modifié dans le code.
"DÉVELOPPEUR"
groupe "code" (1er bloc)
<clic g> sur
sélectionner la macro
<clic g> sur
repérer le code répété
le recopier autant de fois que nécessaire
Afficher le code de la macro créée
répéter le code actif et tester la macro
3. MACROS COMPLEXES - VB
Il est aussi possible, pour les utilisateurs avertis, de programmer des routines plus complexes et même d'utiliser Word comme base d'une application automatisée. La modification ou l'écriture du code s'effectue à l'aide de Visual Basic pour Applications.
"DÉVELOPPEUR"
groupe "code" (1er bloc)
<clic g> sur
la macro-commande s'affiche dans une fenêtre Visual basic
<alt> f11 ouvre une fenêtre Visual Basic
"DÉVELOPPEUR"
groupe "code" (1er bloc)
<clic g> sur
sélectionner la macro
<clic g> sur
la macro-commande s'affiche dans une fenêtre Visual basic
Il faut ici prendre garde de ne pas faire avec Word des choses que sa structure ne lui permet pas de bien faire. Access ou même Excel seront des meilleurs outils de programmation et de structuration des données
a) OBJETS
Un objet représente un élément de l'application Word.
OBJETS :
- Objet Application
- Objet Document
- Objet Selection
- Objet Paragraph
- Objet Range (proche de sélection)
- Objet Bookmark
Tous les objets de même type forment une collection. Chaque élément de la collection est alors identifié par son nom ou par un index.
COLLECTIONS :
- Documents, la collection des documents ouverts dans la session Word
- Paragraphs, la collection des paragraphes d’un document Word
- Words, la collection des mots d’un paragraphe ou d’un document
- Tables, la collection des tableaux d’un document
- Lists, la collection des listes d’un document
- Shapes la collection des formes d’un document
1er paragraphe du document actif
ActiveDocument.Paragraphs(1)
b) PROPRIÉTÉS
Une propriété est propre à un objet (Une propriété peut aussi faire référence à un état de l'objet). Les objets sont séparés de leurs propriétés par un point.
OBJET DOCUMENT :
- Characterscaractères du document
- Contentensemble du document
- Hyperlinksliens du document
- pageSetupcaractéristiques des pages du document
OBJET PARAGRAPH :
- Alignement
- Format
- Bordure…
bordure du 1er paragraphe du document actif
ActiveDocument.Paragraphs(1).Borders
c) MÉTHODES
Une méthode est une opération que réalise un objet.
OBJET DOCUMENT :
- Add :Ouverture et renvoie d'un document
- Open :Prend un nom de fichier en paramètre et renvoie un document
….
OBJET PARAGRAPH :
- CloseUp Supprime tout espace situé avant les paragraphes spécifiés.
- Retrait Cette méthode applique un niveau de retrait à un ou plusieurs paragraphes.
- IndentCharWidth Applique à un paragraphe un retrait correspondant à un nombre spécifié de caractères.
- Suivant Renvoie un objet Paragraph qui représente le paragraphe suivant.
- OpenUp Définit l'espacement avant les paragraphes spécifiés comme étant égal à 12 points.
- Réinitialiser Supprime la mise en forme manuelle des paragraphes (à savoir la mise en forme qui n'est pas appliquée à l'aide d'un style).
- Space1 Applique un interligne simple aux paragraphes spécifiés.
- Space2 Applique un interligne double aux paragraphes spécifiés.
- TabIndent Définit, pour les paragraphes spécifiés, un retrait gauche correspondant au nombre de tabulations spécifié
…
OBJET APPLICATION :
- Activer Active l’objet spécifié.
- ChangeFileOpenDirectory Définit le dossier dans lequel Word recherche les documents.
- Déplacer Positionne une fenêtre de tâche ou la fenêtre de document active.
- NewWindow Ouvre une nouvelle fenêtre avec le même document que la fenêtre spécifiée. Renvoie un objet Window .
- PrintOut Imprime l'intégralité ou une partie du document spécifié.
- Quitter Quitte Microsoft Word et, facultativement, enregistre ou distribue les documents ouverts.
- Redimensionner Redimensionne la fenêtre de l'application Word ou la fenêtre de la tâche spécifiée.
- Exécutez Exécute une macro Visual Basic.
- ScreenRefresh Utilise les informations contenues dans la mémoire tampon vidéo pour mettre à jour le moniteur.
ShowClipboard Affiche le volet Office Presse-papiers…
Les objets sont séparés de leurs méthodes par un point.
Pour appliquer un interligne au 1er paragraphe du document actif ActiveDocument.Paragraphs(1).Space1
Lorsque l'on fait appel à plusieurs propriétés ou méthodes d'un même objet, on fait appel à l'instruction With Objet Instructions End With.
d) ÉVÈNEMENTS
Pour qu'une macro se déclenche, il faut qu'un évènement se produise. Les principaux objets auxquels un événement peut être attaché sont :
OBJET APPLICATION :
- DocumentBeforeClose Se produit immédiatement avant la fermeture d’un document ouvert.
- DocumentBeforePrint Se produit avant l'impression d'un document ouvert.
- DocumentBeforeSave Se produit avant l'enregistrement d'un document ouvert.
- DocumentChange Se produit lors de la création d'un nouveau document, de l'ouverture d'un document existant ou de la sélection d'un autre document comme document actif.
- DocumentOpen Se produit à l'ouverture d'un document.
- NewDocument Se produit lors de la création d'un document.
- ProtectedViewWindowActivate
- Se produit lors de l’activation d’une fenêtre en mode protégé.
- Quitter Se produit lorsque l’utilisateur quitte Microsoft Word.
- WindowActivate Se produit lors de l'activation d'une fenêtre de document.
- WindowDeactivate Se produit lors de la désactivation d'une fenêtre de document.
- WindowSelectionChange Se produit lorsque la sélection change dans la fenêtre du document actif.
- WindowSize Se produit lors d'un redimensionnement ou d'un déplacement de la fenêtre de l'application.
…
OBJET DOCUMENT :
- Fermer Se produit lors de la fermeture d'un document.
- Nouveau Se produit lorsqu'un nouveau document basé sur le modèle est créé.
- Ouvrir Se produit à l'ouverture d'un document.
…
e) CONDITIONS : IF THEN END IF
Les conditions déterminent la valeur que prennent les variables :
condition If condition Then valeur vrai
- arrêter une procédure
- appeler une procédure
- quitter une boucle
- atteindre une étiquette
Si la valeur vraie possède plusieurs lignes d'instructions, la syntaxe devient :
If Condition Then Valeur vraie Else Valeur fausse End If
f) BOUCLES : FOR NEXT
Les boucles permettent de répéter un nombre de fois défini un bloc d'instructions. Elles utilisent une variable qui est incrémentée ou décrémentée à chaque répétition.
À l'intérieur d'un bloc d'instruction For Next, l'instruction Exit For peut quitter la boucle avant que la variable n'est atteint sa dernière valeur
À partir de la macro enregistrée, remplacer les occurrences de la macro par une boucle for…next et sortir de la macro si la condition if ..then (sélection = tableau) n'est plus remplie (voir tableaux2.docm)
g) BOUCLES CONDITIONNELLES : DO LOOP WHILE
La boucle Do While condition Loop exécute un bloc d'instruction tout pendant que la condition est vraie. Dans la boucle Do Loop While condition, le bloc d'instruction est exécuté une fois avant que la condition soit testée.
Pour sortir d'une boucle, on utilise l'instruction Exit Do
4. ENREGISTREMENT
Il est nécessaire d'enregistrer la macro ou ses modifications dans la fenêtre vb.
VISUAL BASIC
<clic g> sur
Sont affichées dans la boîte de dialogue des macros toutes les macros disponibles :
bien veiller à ce que votre macro soit au bon endroit : le document, le modèle normal, un autre modèle (tous en .do.m)