Форум по VBA и MS Office

Word => Работа в программе "Word" => Тема начата: Anton от 23 января 2017, 08:36

Название: Word: Убрать выделение
Отправлено: Anton от 23 января 2017, 08:36
Добрый день!
Подскажите пожалуйста, как убрать такое нестандартное выделение текста. Не хочется использовать команду Очистить формат, уж больно много потом переделывать. Пример прикрепил.

[вложение удалено администратором]
Название: Re: Word: Убрать выделение
Отправлено: Администратор от 23 января 2017, 09:46
Перед тем, как убирать заливку, выделите весь абзац кроме знака абзаца. А затем убирайте заливку.
Это связано с тем, что заливка применена не ко всему абзацу, а пользователь выделял фрагменты абзаца и их заливал.
Название: Re: Word: Убрать выделение
Отправлено: Anton от 23 января 2017, 10:43
Класс! Огромное спасибо!

А можно ли это как-то автоматизировать для всего текста, а то у меня таких фрагментов с полсотни наберется?
Название: Re: Word: Убрать выделение
Отправлено: Администратор от 23 января 2017, 10:48
Есть такие варианты:
1) юзер выделяет фрагмент - макрос обрабатывает этот фрагмент;
2) макрос обрабатывает весь файл.

Какой у вас вариант?
Название: Re: Word: Убрать выделение
Отправлено: Anton от 23 января 2017, 11:37
А можно ли так: если есть выделенный фрагмент, то обработать его, а если нет - то обработать весь документ?
Название: Re: Word: Убрать выделение
Отправлено: Администратор от 23 января 2017, 14:03
Макрос
Sub Макрос()

    Dim rng As Range
   
   
    '1. Присваивание нужному фрагменту имени "rng".
        ' Далее в коде можно будет обращаться к нужному фрагменту по этому имени.
    ' Если ничего не выделено, то нужно обработать весь файл.
    If Selection.Type = wdSelectionIP Then
        Set rng = ActiveDocument.Range
    ' Если что-то выделено.
    Else
        Set rng = Selection.Range
    End If
   
    '2. Удаление заливки в выделенных абзацах.
    rng.Font.Shading.BackgroundPatternColor = wdColorAutomatic

    '3. Сообщение, чтобы юзер понял, что макрос завершил работу.
    MsgBox "Готово.", vbInformation
   
End Sub
[свернуть]
Название: Re: Word: Убрать выделение
Отправлено: Администратор от 23 января 2017, 14:14
Можно и вручную это сделать, без макроса:
выделите фрагмент, в котором нужно убрать заливку, - вкладка "Главная" - группа "Абзац" - стрелка кнопки "Границы" - появится выпадающий список - Границы и заливка... - вкладка "Заливка" - в правом нижнем углу "Применить к" - тексту - список "Заливка" - нет цвета - список "тип" - нет (нужно обязательно выбрать этот пункт, даже если там и так стоит "нет"; наверное брак в ворде) - OK.
Название: Re: Word: Убрать выделение
Отправлено: Anton от 23 января 2017, 17:02
Спасибо за макрос и объяснение! Макросом получается, кончено, намного быстрее. Но как бороться с такими заливками средствами Word узнал первый раз.