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
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
c) LA GESTION DE LA SÉCURITÉ
Le paramétrage par défaut de la sécurité des macros est tout à fait satisfaisant. Les options peuvent être modifiées mais aux risques et périls de l'utilisateur.
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
pour activer globalement
l'exécution des macro-commandes
dans le volet de
gauche,
<clic g> sur pour ajouter un dossier
les
macros ne seront pas bloquées dans les documents de cet
emplacement
Il est risqué de désactiver le blocage des macro-commandes hormis dans un environnement connu et sécurisé
Sans modifier la gestion de la sécurité, l'approbation d'un document par ne s'effectue que la première fois qu'il est ouvert ; il est conseillé de laisser les choses ainsi
dans le volet de gauche,
<clic g> sur pour réinitialiser la liste de ces documents approuvés
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 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
la
boite de dialogue de personnalisation s'affiche
bouton
droit
<clic
d>
dans le volet de
gauche
sélectionner
dans le volet de droite
choisir les documents concernés
dans le volet du milieu
choisir
la
catégorie "macros"
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)
Ouvrir tableaux.docs
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 espaces ou
espace avec deux points ou autre selon les cas de figure 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 "développeur"
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 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" et sélectionne 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.
onglet
"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.
onglet
"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
onglet
"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 :
Characters caractères du document
Content ensemble du document
Hyperlinks liens du document
pageSetup caracté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.
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
e)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 )
f) 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)