Форум по VBA, Excel и Word

Word => Макросы в Word => Тема начата: Anton от 01 июня 2017, 15:50

Название: Word Макрос: Закрасить абзац в случае запрета в нем переносов
Отправлено: Anton от 01 июня 2017, 15:50
Добрый день!
Могу я попросить Вас написать макрос?
Если есть запрет переносов в абзаце, то его закрасить светло-серым, к примеру.
Уж очень удобно и наглядно будет.
Название: Re: Word Макрос: Закрасить абзац в случае запрета в нем переносов
Отправлено: Администратор от 01 июня 2017, 17:07
Запрет переносов как делается в ворде без макросов? Куда надо щёлкать?
Название: Re: Word Макрос: Закрасить абзац в случае запрета в нем переносов
Отправлено: Anton от 01 июня 2017, 18:04
Главная - абзац - положение на странице - запретить автоматический перенос слов
Название: Re: Word Макрос: Закрасить абзац в случае запрета в нем переносов
Отправлено: Администратор от 01 июня 2017, 21:42
Макрос
Sub Макрос()

    Dim par As Paragraph
   
   
    '1. Отключение монитора (может это ускорит макрос и не будет мерцать).
    Application.ScreenUpdating = False
   
    '2. Цикл по всем абзацам в основной части файла.
    For Each par In ActiveDocument.Paragraphs
        If par.Hyphenation = False Then
            par.Range.Shading.BackgroundPatternColor = -603923969
        End If
    Next par
   
    '3. Включение монитора.
    Application.ScreenUpdating = True
   
    '4. Сообщение.
    MsgBox "Готово.", vbInformation

End Sub
[свернуть]
Название: Re: Word Макрос: Закрасить абзац в случае запрета в нем переносов
Отправлено: Anton от 02 июня 2017, 07:24
Спасибо!
Название: Re: Word Макрос: Закрасить абзац в случае запрета в нем переносов
Отправлено: Администратор от 02 июня 2017, 07:31
Если макрос будет долго работать, то можно попробовать использовать "Find".
Название: Re: Word Макрос: Закрасить абзац в случае запрета в нем переносов
Отправлено: Anton от 02 июня 2017, 13:30
На большом тексте (~300 с.) работает у меня несколько секунд. Я думаю, это хороший результат, спасибо.