2010-03-07 7 views
3

J'ai environ 100 documents Word qui incluent la translittération des noms étrangers. L'auteur de ces documents utilisait une police spéciale appelée e2 qui contient environ une douzaine de caractères spéciaux de translittération (tous disponibles dans la police Microsoft Sans Serif).Comment faire une boucle sur chaque lettre dans MS Word en utilisant VBA?

Je voudrais parcourir chaque lettre du document et chaque fois que le .Font = "e2" je voudrais faire défiler les douzaines de lettres (il est facile de deviner de quoi il s'agit) et les remplacer par un équivalent Microsoft Sans Serif. Mais je ne peux pas comprendre comment vous pouvez boucler des lettres. Est-ce faisable comme boucler à travers des cellules dans une feuille de calcul Excel?

Répondre

4

Ce serait une façon de le faire, mais en fonction de la taille du document, l'exécution peut prendre du temps.

Sub ChangeFonts() 
Dim doc As Document 
Set doc = ActiveDocument 

For i = 1 To doc.Range.Characters.Count 
    If doc.Range.Characters(i).Font.Name = "e2" Then 
     doc.Range.Characters(i).Font.Name = "Microsoft Sans Serif" 
    End If 
Next 

End Sub 
0

Vous pouvez aussi l'enregistrer comme docx, ouvrez-le dans un fichier zip et faire une recherche/remplacement dans document.xml et fontTable.xml.

0

utiliser le format mswords trouver & remplacer. Vous économiserez du temps & le gros fichier ne sera pas une préoccupation.