Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Anton от 28 сентября 2017, 13:09

Название: Word VBA: Изменить шрифт в списках
Отправлено: Anton от 28 сентября 2017, 13:09
Добрый день!
Который раз попадаются нумерованные списки, у которых шрифт отличается от основного текста (в примере 14, а текст - 16). Можно ли макросом поправить размер и тип шрифта во всех списках документа, приняв за образец параметры первого символа текста в списке. Пример приложил.

[вложение удалено администратором]
Название: Re: Word VBA: Изменить шрифт в списках
Отправлено: Администратор от 28 сентября 2017, 22:48
Макрос
Sub Макрос()
   
    Dim list As list
   
    '1. Отключение монитора (может это ускорит макрос и не будет мерцать).
    Application.ScreenUpdating = False
   
    '2. Изменение шрифта у маркеров списка.
    For Each list In ActiveDocument.Lists
        list.ListParagraphs(1).SelectNumber
        Selection.Font.Size = list.ListParagraphs(1).Range.Characters(1).Font.Size
        Selection.Font.Name = list.ListParagraphs(1).Range.Characters(1).Font.Name
    Next list
   
    '3. Вкл. монитора.
    Application.ScreenUpdating = True
   
    '4. Сообщение.
    MsgBox "Готово.", vbExclamation
   
End Sub
[свернуть]
Название: Re: Word VBA: Изменить шрифт в списках
Отправлено: Anton от 29 сентября 2017, 08:48
Большое спасибо! Все получилось!
Название: Re: Word VBA: Изменить шрифт в списках
Отправлено: Anton от 27 ноября 2017, 23:19
Попался мне документ с тестами для студентов, там около 1800 списков. Word при запуске макроса ругается, говорит на строчке
Selection.Font.Size = list.ListParagraphs(1).Range.Characters(1).Font.Size
что недостаточно памяти.

Так и должно быть или у меня с документом опять что-то не то?
Название: Re: Word VBA: Изменить шрифт в списках
Отправлено: Администратор от 28 ноября 2017, 07:58
Не знаю, почему так. Нужно смотреть файл.