Mes pages Fourretout

acces zone protégée -> s'inscrire. -> s'identifier. -> mot de passe oublié ?
Accueil du site > Informatique > 2. Spip > 2.3 Styles Word > 2.3.3. Macro "style management.dot"

2.3.3. Macro "style management.dot"

samedi 2 août 2008, par H2Fooko

Toutes les versions de cet article :


  1. Introduction
  2. Caractéristiques
  3. Fonctionnalites
  4. Installation - Desinstallation
  5. Menu
    1. Visualize n’ Clean
      1. Description des Zones de l’interface.
      2. Description des Colonnes de l’interface.
      3. Procédure de renommage :
      4. Procédure d’effacement :
      5. Défilement des styles.
      6. Signification des couleurs.
      7. Info Bulles.
      8. Validation.
      9. Annulation.
      10. Sélection des styles inutilisés.
      11. Sauvegarde des styles affichés.
      12. Démonstration des styles (prédéfinis).
      13. Suppression des Alias de style.
    2. Trick Ghost Styles
    3. Restore Header & Footer
    4. Delete Menu
    5. A propos & Aide
  6. Problèmes identifiés
  7. Reste à Faire
  8. Téléchargement

Introduction

Avec l’arrière pensée d’améliorer la macro de conversion de Word vers SPIP, j’ai décidé de développer une macro préliminaire afin de me familiariser aux dessous de la programmation des styles de MS Word.

Ce faisant j’ai été confronté aux imperfections de Word et du même coup profité de cette occasion pour y remédier quelque peu.

Retour


Caractéristiques

Macro écrite en VBA (Visual Basic for Application)
Microsoft Visual Basic 6.3 version 1024
VBA retail 6.5.1024 Forms3 : 12.0.6025.500

Pour les versions de Windows et Word, suivre le lien.

Concernant le N° de révision de ma macro, voir le paragraphe correspondant.

Retour


Fonctionnalites

  • Affichage des styles du document actif, entêtes et pieds de page inclus :
    • Prédéfinis
    • Utilisés
    • Indirectement utilisés
    • et fantômes.
  • Renommage des styles et des styles de base basés sur ces styles.
  • Effacement des styles (excepté les styles prédéfinis).
  • Filtrage des styles non utilisés même indirectement.
  • Sauvegarde des styles trouvés dans un document Word.
  • Démonstration des styles prédéfinis dans un document Word.
  • Suppression des Alias de noms de style.

Retour


Installation - Desinstallation

L’installation est simple puisqu’il suffit de déposer le fichier modèle de document : « style management.dot » contenant mes macros dans le répertoire :

C:\Documents and Settings\Identifiant\Application Data\Microsoft\Word\STARTUP

Avec la particularité suivante, le nom de répertoire « Identifiant » doit être remplacé par votre identifiant de session Windows.

Autre particularité, dépendant cette fois de la langue d’installation de MS Word, le répertoire « STARTUP » est parfois nommé « DEMARRAGE ».

Vérification rapide :

Lancez MS Word, vous devez découvrir un nouveau menu nommé « Styles » :

Et dans le menu de MS Word Outils -> Modèles et Compléments ... :

Le nouveau modèle de documents doit y figurer :

Maintenant vous pouvez ouvrir un document MS Word quelconque et analyser les styles.

Désinstallation :

Effectuez manuellement les actions suivantes :

  1. Effacez le menu Style (jusqu’à ce qu’il y en ait plus aucun). Pour cela utilisez le menu « Delete Menu Style » décrit plus bas.
  2. Quittez MS Word
  3. Supprimez ou déplacez ou renommez l’extension du modèle de document « style management.dot » dans le répertoire STARTUP :

Constatez que tout redevient comme avant, en relançant MS Word, et dans le menu de MS Word Outils -> Modèles et Compléments ... :

Retour


Menu

Une fois installé le modèle de document contenant les macros de gestion des styles MS Word, il apparaît à droite du menu classique de MS Word un nouveau menu qui, lorsqu’on clique dessus, apparaît comme suit :

Visualize n’ Clean : Visualiser et nettoyer
Trick Ghost Styles : Contourner les styles fantômes
Restore Header & Footer : Restaure l’entête et le pied de page
Delete Menu Style : Effacer le menu Style
About : A propos & Aide

Voyons dans le détail chacun de ces sous-menus :

Retour


Visualize n’ Clean

En sélectionnant le sous-menu ’Visualize n’ Clean’ du menu ’Style’, on fait apparaitre une nouvelle fenêtre présentant les différents styles du document actif.

Il y a un style par ligne, avec pour chaque colonne des informations complémentaires :

Description des Zones de l’interface.

Les zones de l’interface sont mises en évidence grâce au changement de la couleur de fond de la dite zone lors du survol de la souris. La zone survolée peut prendre 2 couleurs possibles en fonction de la confiance que l’on peut apporter à ce qui est affiché (voir ci-dessous).

  1. A gauche, une zone dédiée au choix des styles à modifier. En sélectionnant un style en cochant la case correspondante, la zone de texte immédiatement à droite se modifie pour pouvoir changer le nom local du style.
  2. La zone médiane permet de lister les styles dans l’ordre alphabétique et de signaler leur état au moyen de couleurs et de boutons ’radio’.
  3. La zone de droite est consacrée à l’effacement des styles en les sélectionnant au moyen des cases à cocher.

-> Retour sous Menu
Description des Colonnes de l’interface.

  1. Unique colonne de la zone dédiée aux modifications, elle est composée de plusieurs éléments :
    1. Un ou deux caractères
      1. Un point d’interrogation «  ? » indique que le style ne possède pas de propriété de description.
      2. Une lettre « L » lorsque que le style est verrouillé.
    2. Un index d’énumération correspondant à l’ordre alphabétique
    3. Une case à cocher signalant le souhait de modifier le nom du style local.
      Procédure de renommage :
      1. Sélectionner le style à renommer en cochant la case correspondante.
      2. Renommer le libellé maintenant qui apparait sur fond blanc. Notez qu’en désélectionnant on retrouve le nom initial.
      3. Validez.
      4. on le retrouve modifié.
      5. En renommant un style prédéfini comme "Titre 2" par exemple lui même style de base : MS Word créée un « Alias » visible dans le nom local du style prédéfini après un séparateur : " ;" Notez que les styles de base des styles qui utilisent le style renommé ont été mis à jour.
        ATTENTION, si n’avez pas purgé tous les styles fantômes récalcitrants, le fait de renommer un style prédéfini va générer un nouveau style fantôme comme ici :
        -> Retour sous Menu
  2. La première colonne de la zone centrale (2de à partir de la gauche) affiche le nom local du style et son « alias » éventuel dans le cas d’un style prédéfini. Cette propriété dépend de la langue d’installation de MS Word.
  3. La seconde colonne de la zone centrale (3ème à partir de la Gauche) affiche le nom du style de base. Le style local héritant des propriétés du style de base.
    Un style de base pouvant servir de style de base à plusieurs styles.
    Un style local ne pouvant avoir qu’un seul style de base.
  4. La troisième colonne de la zone médiane (4ème colonne à partir de la gauche) liste les noms des constantes internes de MS Word correspondant aux styles prédéfinis (certains styles prédéfinis ne possèdent pas de constante connue).
    Cette colonne est surtout utile aux developpeurs souhaitant reconnaitre un style indépendamment de son nom local.
  5. La quatrième colonne (5ème de la gauche) représente sous forme de bouton ’radio’ l’état d’utilisation des styles. Il s’agit de savoir si le style est utilisé dans le texte courant même indirectement.
  6. La cinquième colonne (Avant dernière et 6ème de la gauche) signale l’état prédéfini ou utilisateur du style. Un style prédéfini est un style pré-existant dans MS Word et qui sont accessibles dans un document vierge.
  7. La septième et dernière colonne (unique colonne de la zone d’effacement) présente 2 informations principales :
    1. Le type de style :
      1. C pour style caractère.
      2. P pour style Paragraphe.
      3. L pour style Liste.
      4. T pour style Tableau.
    2. Rappel de l’index du style dans l’ordre alphabétique.
    3. Une case à cocher signalant le souhait d’effacer le style.
      -> Retour sous Menu
      Procédure d’effacement :
      1. Sélectionner le style à effacer. La première méthode consiste à cocher individuellement chaque style à effacer : La seconde méthode consiste à utiliser le bouton poussoir ’Select UnUsed’ au bas de l’interface utilisateur. Ce bouton permet de sélectionner tous les styles effaçables.
      2. Validez avec le bouton en bas à gauche.
      3. Les styles sélectionnés disparaissent. (A l’exception des styles fantômes récalcitrants s’il n’ont pas été traités avec le sous menu ’Trick Ghost Styles’).

-> Retour sous Menu
Défilement des styles.
Vu le nombre de styles, il est impossible de les afficher simultanément sur l’écran. Alors l’ascenseur ou barre de défilement permet de parcourir les styles. Grâce à la souris et sa molette on peut faire défiler les styles jusqu’à découvrir les boutons d’actions au bas de l’interface utilisateur.

-> Retour sous Menu
Signification des couleurs.

Par défaut la couleur de fond des styles est grise. Elle le restera si le style n’est pas utilisé même indirectement.

La couleur de fond jaune indique que le style est utilisé directement dans le document actif.

La couleur de fond rose indique que le style est utilisé indirectement et indirectement seulement. Cela signifie qu’il est un style de base (... d’un style de base d’un style de base ...) d’un style utilisé mais n’est pas directement utilisé dans le texte. Cela permet de repérer un style qui changerait la physionomie du texte s’il venait à disparaître.

La couleur bleue indique que le style est prédéfini dans MS Word. Comme il peut être simultanément utilisé, la couleur bleue n’est pas seulement utilisée pour le fond de la 6ème colonne, mais aussi pour la police de caractère de toute la ligne.

La couleur verte du fond de l’interface indique que les informations qui y sont affichées résultent d’une analyse exhaustive du texte du document actif. On peut donc s’y fier.

La couleur orange du fond de l’interface indique que les informations qui y sont affichées résultent seulement de la mise à jour d’après les actions supposées effectuées par MS Word après une validation (bouton VALIDATE). En effet MS Word ne prévient pas (en tout cas je ne sais pas comment) quand il créée des styles fantômes.

-> Retour sous Menu
Info Bulles.
La plus intéressante des Infos Bulles est celle que l’on peut lire lorsqu’on survole la 2de colonne. En effet elle affiche la liste des styles qui utilisent le style survolé comme style de base.

Malheureusement, il faudrait que j’apprenne à faire un retour à la ligne dans les infos bulles. Allez par curiosité survoler le style ’Normal’ ;-)

Sinon en voici quelques unes :




-> Retour sous Menu
Voyons maintenant les boutons poussoir d’actions :


Validation.
Ce bouton poussoir permet d’executer les souhaits de renommage et d’effacement de l’utilisateur. L’interface utilisateur se redessine pour mettre en évidence les actions effectuées.

Compte tenu du comportement de MS Word avec les styles fantômes, notamment du fait de la mutation possible de ces styles fantômes, il est bon de relancer une visualisation complète en :

La couleur de fond de l’interface repasse alors en vert (voir ci-dessus la signification).

Vous noterez que certains styles fantômes ne disparaissent toujours pas. Pour remédier à celà un autre sous-menu permet de contourner cet état de fait.

-> Retour sous Menu

Annulation.
Permet de quitter l’interface utilisateur sans rien modifier. C’est l’équivalent de la croix blanche sur fond rouge en haut à droite des fenêtres de MS Windows.

-> Retour sous Menu

Sélection des styles inutilisés.
Ce bouton poussoir à 2 états (enfoncé - relâché) permet de sélectionner tous les styles non utilisés même indirectement et non prédéfinis. En gros ceci permet de filtrer en les sélectionnant tous les styles qui peuvent être effacés sans conséquences pour la mise en forme du document actif.

-> Retour sous Menu

Sauvegarde des styles affichés.
Ce bouton poussoir ouvre un nouveau document MS Word avec la liste des styles affichés dans l’interface utilisateur en gardant le même code de couleurs que celui de l’interface. Ce document est nommé par défaut avec le préfixe « Style of » suivi du nom du document actif.
Attention ce nouveau document n’est pas sauvegardé, vous devrez le faire comme tout nouveau document au moyen des menus classiques de MS Word.

Une difficulté non résolue pour l’instant m’a contraint à afficher un message d’avertissement :

En effet je n’ai pas réussi à retourner automatiquement avec ma macro à l’interface utilisateur qui m’a permis de lancer la création de ce nouveau document.
Pour la signification des entêtes de colonnes de ce nouveau document, se reporter aux exemples.

-> Retour sous Menu

Démonstration des styles (prédéfinis).
Ce bouton poussoir ouvre aussi un nouveau document MS Word avec pour chaque paragraphe son nom, le style de base et le nom de la constante interne. Chaque style est appliqué au paragraphe qui le nomme.

-> Retour sous Menu

Suppression des Alias de style.
Ce bouton poussoir à 2 états (enfoncé - relaché) permet de suggérer un renommage des styles avec Alias :

Une fois le bouton poussoir enfoncé, tous les styles possédant un alias passent en mode d’édition du nom de style avec la suggestion de renommage sur fond blanc, et la case à cocher de renommage validée :

Si une validation suit, la macro tente de tous les renommer.
Si on relâche le bouton poussoir, les noms de styles initiaux sont remis en l’état initial.

-> Retour sous Menu
-> Retour


Trick Ghost Styles

En sélectionnant le sous-menu ’Trick Ghost Styles’ du menu ’Style’, on exécute une routine qui permet de contourner la difficulté d’effacer certains styles fantômes récalcitrants.
En effet dans le cas particulier des styles fantômes précédés d’un caractère ’blanc’ dans leur nom local :

qui ne sont pas effaçables avec le sous-menu précédent ’Visualize n’ Clean’, en lançant cette action on arrive malgré tout à les renommer :

et à faire disparaître ce fameux caractère ’blanc’.

La procédure à suivre :

  • Lancer ’Visualize n’ Clean’
  • Repérer les styles fantômes récalcitrants.
  • Quitter ’Visualize n’ Clean’.
  • Lancer ’Trick Ghost Styles’.
  • Re-lancer ’Visualize n’ Clean’ pour constanter le renommage de ces styles.
  • Il ne reste plus qu’à les sélectionner pour maintenant pouvoir les effacer et valider.

Remarques :

  1. En plus de la disparition du caractère ’blanc’, la description du style n’est plus vide.
  2. L’ordre alphabétique a changé, et ces styles contournés se retrouvent plus bas dans l’interface utilisateur.

J’ai choisi de ne pas exécuter systématiquement cette astuce de façon à pouvoir constater la présence des styles fantômes récalcitrants avant de pouvoir les effacer grâce à la procédure ci-dessus.

Cette astuce consiste à exporter le fichier MS Word sous forme XML et à le ré-importer dans la foulée. J’ai juste mis en pratique une constatation trouvée sur Internet. D’ailleurs vous trouverez un fichier *.xml résiduel dans le répertoire aux côtés du document traité.

Retour


Restore Header & Footer

En sélectionnant le sous-menu ’Restore Header & Footer’ du menu ’Style’, on exécute la seule procédure que je n’ai pas écrite, mais enregistrée au moyen de l’enregistreur de macro de MS Word.
En effet j’ai constaté malgré tout que l’éxécution du sous menu précédent ’Trick Ghost Styles’ modifiait la taille des entêtes. Heureusement la mise en forme du contenu n’est pas affectée !

On peut donc sincèrement se passer de l’exécuter.

Retour


Delete Menu

Encore une verrue !
En attendant d’y remédier, le menu ’Style’ peut s’afficher plusieurs fois de suite.

J’ai pourtant prévu de l’afficher à l’ouverture et de l’effacer à la fermeture du document actif.

Première utilité :

Il arrive donc à force de manipuler avec MS Word que ce menu apparaisse plusieur fois. Il suffit de lancer ’Delete Menu Style’ pour pouvoir supprimer les menu surnuméraires ;-) un à un.

Deuxième utilité :

Ce menu sert à désinstaller la macro contenue dans le modèle de document. Pour cela voir plus haut la procédure.

Retour


A propos & Aide

Afin de suivre les éventuelles évolutions, le sous menu « About » permet d’avoir le numéro de révision de la macro.

On peut m’ecrire grâce au premier lien indiqué.

Enfin on peut accéder à l’aide en ligne grâce au dernier lien pointant sur cet article :

Retour


Problèmes identifiés

Les erreurs d’exécution suivantes, ont été contrées dans le code grâce à une gestion d’erreur permettant d’éviter qu’elles ne plantent brutalement la macro. Par contre, cela n’empêchera pas leur réapparition car elles traduisent bien souvent l’existence des styles fantômes.

Erreur d’execution ’5951’ : Le membre de la collection requis n’existe pas.

Il se trouve que je tente d’effacer un style qui a pourtant été recensé :

Erreur d’execution ’5173’ : Ce nom de style existe déjà ou est réservé pour un style prédéfini.

Erreur d’execution ’5834’ : L’élément dont le nom est spécifié n’existe pas.

Le style a pourtant été recensé, il est ou a été utilisé (.InUse à vrai), pourtant la recherche plante à cet endroit :

Erreur d’execution ’6054’ : Le nom de style Lien n’existe pas ou est d’un type incorrect.

En fait ici j’essaye de renommer le style suivant : « _vaiStandard Car Car1 ». Il a pourtant été recensé et affiché. On note que c’est un style de type paragraphe sans aucun style de base (vide).

Retour


Reste à Faire

    1. Texte d’aide du ’baseName’ avec les noms des autres styles locaux dont il est aussi le style de base.
    2. Losqu’un style est à la fois en cours de modification et en instance d’effacement, faire en sorte que le dernier choix de l’utilisateur prime. Car on ne peut vouloir effacer et modifier en même temps !
    3. Overflow de stack qui oblige à relancer une 2ème fois la macro.
    4. Après une validation les commentaires ne sont plus valides (décalage). Ils correspondent au commentaire du style qui a été effacé.
    5. Problème de retour à la fenêtre du ’userform’.
    6. Ajouter la langue de chaque style
    7. Le menu style s’affiche parfois plus d’une fois.
    8. Pointeur de souris une fois cliqué sur un item déplace la fenêtre (scroll) et se positionne sur un autre item. Génant.
    9. Compléter le document MS Word généré avec la liste des styles du document actif avec pour chaque style la liste des styles qui l’utilisent comme style de base.
    10. Entête du document MS Word généré avec la liste des styles du document actif à coloriser en fonction de l’indice de confiance.
    11. Idem renseigner la colonne des langues des styles (propriété correspondante)
    12. Concernant le document de démonstration des styles, différencer en fonction du type de style. Par exemple pour un style ’tableau’ créer un tableau avant de lui appliquer son style ...
    13. Mélange d’anglais et de français pas très heureux ...
    14. Lenteur de "Visualize & Clean" certainement due à une fonction récursive.

Retour


Téléchargement

Voilà qui est fait merci pour vos commentaires, et merci aux auteurs qui m’ont inspiré sur la toile ;-)

Retrouvez cette macro sur les très bons sites suivants :
VBFrance
Developpez

Retour

Et avec MS Word 2007 ?

Répondre à cet article


| Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | SPIP | squelette