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.


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


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)

Modifié le: lundi 25 mars 2019, 09:15