Script pour changer les fonts dans un document Word

J’ai un fichier Word 2007 et je souhaite changer toute utilisation de la police Courier New en une police Lucida Console. J’ai besoin d’un script qui trouve tous les mots mis en forme dans cette police et les change en nouvelle police.

Comment puis je faire ça?

Dans Word, vous pouvez enregistrer une macro en le faisant vous-même. Ensuite, vous ouvrez l’éditeur VBA, supprimez éventuellement une chose inutile (généralement trop de sélections ou de déplacements dans le fichier) et vous avez votre script.

Modifié: déplacé le contenu d’un commentaire ici, pour répondre au commentaire de l’auteur.

Lors de l’enregistrement de la macro, dans la boîte de dialog Rechercher et remplacer, cliquez sur ‘Remplacer tout’. Puis arrêtez l’enregistrement. La macro générée ressemble à:

Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "tarte au pomme" .Replacement.Text = "t aux pruneaux" .Wrap = wdFindContinue .MatchCase = False ' removed some stuff End With Selection.Find.Execute Replace:=wdReplaceAll 

À partir de là, vous pouvez créer la macro VBScript. Vous devez obtenir la valeur de wdReplaceAll et wdFindContinue dans le navigateur d’objects.

Peut-être pouvez-vous utiliser OpenXML SDK 2.0 ? Vous devriez pouvoir changer le style (ce qui contient les informations sur la police, je crois).

Cela le fera pour vous:

 Sub ChangeFonts() Dim doc As Document Set doc = ActiveDocument For i = 1 To doc.Range.Characters.Count If doc.Range.Characters(i).Font.Name = "Courier New" Then doc.Range.Characters(i).Font.Name = "Lucida Console" End If Next End Sub