Скрипт для изменения шрифтов в документе Word - PullRequest
1 голос
/ 26 февраля 2010

У меня есть файл Word 2007, и я хочу изменить все использование шрифта Courier New на шрифт Lucida Console. Мне нужен скрипт, который находит все слова, отформатированные в этом шрифте, и заменяет его новым шрифтом.

Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 26 февраля 2010

Внутри Word вы можете записать макрос, выполнив его самостоятельно. Затем вы открываете редактор VBA, опционально удаляете некоторые бесполезные вещи (обычно слишком много выделений или перемещений в файле), и вы получаете свой скрипт.

Отредактировано: перемещено содержание комментария сюда, чтобы ответить на комментарий автора.

При записи макроса в диалоговом окне поиска и замены нажмите «Заменить все». Затем остановите запись. Сгенерированный макрос выглядит так:

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 

С этого момента вы можете создать макрос VBScript. Вам необходимо получить значения wdReplaceAll и wdFindContinue в Обозревателе объектов.

1 голос
/ 27 июня 2010

Это сделает за вас:

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
1 голос
/ 26 февраля 2010

Возможно, вы можете использовать OpenXML SDK 2.0 ? Вы должны быть в состоянии изменить стиль (я думаю, именно он содержит информацию о шрифте).

...