Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Anton от 22 мая 2017, 10:12

Название: Word VBA Макросы: Изменить размер шрифта как в Word.
Отправлено: Anton от 22 мая 2017, 10:12
Изменяю размер шрифта выделенного текста на 0.5 так:
Selection.Font.Size = Selection.Font.Size + 0.5
Но если в выделенном фрагменте есть шрифт разного размера - происходит ошибка.

В самом Word есть такие кнопки быстрого изменения размера на 1 пт, но ошибка не происходит.

Эта проблема решаема?
Название: Re: Word VBA Макросы: Изменить размер шрифта как в Word.
Отправлено: Администратор от 22 мая 2017, 10:35
Могу предложить такие варианты. На больших фрагментах будет медленно работать.

Если разный шрифт может быть у слов:
Макрос
Sub Макрос()
    Dim word As Range
    Application.ScreenUpdating = False
    For Each word In Selection.Words
        word.Font.Size = word.Font.Size + 0.5
    Next word
    Application.ScreenUpdating = True
End Sub
[свернуть]

Если разный шрифт может быть у символов внутри слова:
Макрос
Sub Макрос()
    Dim char As Range
    Application.ScreenUpdating = False
    For Each char In Selection.Characters
        char.Font.Size = char.Font.Size + 0.5
    Next char
    Application.ScreenUpdating = True
End Sub
[свернуть]
Название: Re: Word VBA Макросы: Изменить размер шрифта как в Word.
Отправлено: Anton от 22 мая 2017, 12:31
Обычно приходится работать с небольшими фрагментами, буду использовать.
Большое спасибо!