Форум программистов, компьютерный форум CyberForum.ru

VBA

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.84
diletant2
6 / 4 / 1
Регистрация: 02.05.2011
Сообщений: 102
#1

Выделение несвязного текста цветом - VBA

02.05.2011, 22:55. Просмотров 3163. Ответов 10
Метки нет (Все метки)

столкнулся с проблемой: если в тексте ФЫВАПРОЛДЖЭЯ ФЫВАПРОЛДЖЭЯ ФЫВАПРОЛДЖЭЯ ФЫВАПРОЛДЖЭЯ выделить несвязанные области (выделено жирным) и через меню выбрать Цвет выделения текста =Текст будет выглядеть так, как если бы он был закрашен фломастером, то все выделенное закрасится: ФЫВАПРОЛДЖЭЯ ФЫВАПРОЛДЖЭЯ ФЫВАПРОЛДЖЭЯ ФЫВАПРОЛДЖЭЯ (выделено красным, сорри, не знаю как здесь выделить цветом...), а вот если записать макрос (например, выделение желтым цветом):

Options.DefaultHighlightColorIndex = wdYellow
Selection.Range.HighlightColorIndex = wdYellow

и потом применить его к таким же образом выделенному тексту (несвязанное выделение), то получим закраску только последнего выделенного фрагмента, при этом другие фрагменты - останутся нетронутыми: ФЫВАПРОЛДЖЭЯ ФЫВАПРОЛДЖЭЯ ФЫВАПРОЛДЖЭЯ ФЫВАПРОЛДЖЭЯ (подчеркнуто)!
как же получить код, делающий закраску, как через меню?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2011, 22:55     Выделение несвязного текста цветом
Посмотрите здесь:

Выделение цветом текста в ячейке - VBA
Есть таблица в Excel, в каждой ячейке содержится название и описание какой-либо операции. Необходимо найти ключевые слова в ячейке и...

Поиск, выделение цветом и замена - VBA
День добрый. Нужна помощь знающих людей. Суть задачи состоит в том: Есть три колонки: первая - строка, вторая - число, третья - число с...

Excel Усовершенствовать автозаполнение текста цветом и автоматическая подстановка текста и цыфр - VBA
Нужно подставить цифры внутри готового набора символов от одного до десяти --> 2-0000/1-10/2016 <--- в зависимости от заполнения другой...

Выделение цветом ячейки с минимальным значением - VBA
Nu ne znaju ja VBA, a delat nado. Kak napisat makros, chto by v vydelennoj stroke tablicy samoe malenkoe znachenie vydeljalos, skazhem,...

Макрос на выделение цветом найденную запись - VBA
здравствуйте, данный макрос находит заданное значение и выделяет его цветом Sub Finderer() Dim FD, firstAddress, adrs FD =...

Выделение цветом активной ячейки в Excel - VBA
В Excel активная ячейка выделена границей – как выделить ее цветом? Имею ввиду, что при нажатии Enter, мышки и т.д. ячейка меняет цвет на...

Выделение области цветом при условии - VBA
Коллеги, доброе утро! Прошу помощи с форматированием прайс-листа. Пример того что есть изначально и как я хочу чтобы это выглядело...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Вождь
216 / 48 / 2
Регистрация: 18.02.2010
Сообщений: 81
03.05.2011, 02:06     Выделение несвязного текста цветом #2
Когда выбрано несколько фрагментов, полезны встроенные команды MS Word, которые работают аналогично командам меню. В данном случае подойдет команда Highlight. Делаем так:
Visual Basic
1
2
    Options.DefaultHighlightColorIndex = wdYellow
    Application.Run "Highlight"
diletant2
6 / 4 / 1
Регистрация: 02.05.2011
Сообщений: 102
03.05.2011, 02:59  [ТС]     Выделение несвязного текста цветом #3
спасибо, работает!
вдогонку, если можно, еще одна проблема: если выделить не связанные между собой фрагменты текста и закрасить фон таким кодом

Selection.Shading.BackgroundPatternColor = wdColorLightTurquoise

то попытка удалить сразу все такие раскраски с помощью кода

Selection.Shading.BackgroundPatternColor = wdColorAutomatic

ни к чему не приводит, если фрагменты принадлежат к разным абзацам (правда, если выделить мышкой только эти фрагменты текста с раскрашенным фоном без захвата знаков абзаца, то тогда получится), но это неудобно вручную выделять все эти фрагменты текста, особенно на больших текстах (например, после сканирования и распознавания, когда возможные ошибки подкрашиваются именно фоном), проще выделить все Ctrl+A и применить макрос, но какой?
Вождь
216 / 48 / 2
Регистрация: 18.02.2010
Сообщений: 81
03.05.2011, 04:47     Выделение несвязного текста цветом #4
Надо различать заливку абзаца (Paragraph.Shading) и текста (Font.Shading). При Selection.Shading автоматически обрабатывается что-то одно. Поэтому лучше указывать конкретно, что закрашивать. В вашем случае надо очищать сразу все:
Visual Basic
1
2
    Selection.Font.Shading.BackgroundPatternColor = wdColorAutomatic
    Selection.Paragraphs.Shading.BackgroundPatternColor = wdColorAutomatic
diletant2
6 / 4 / 1
Регистрация: 02.05.2011
Сообщений: 102
03.05.2011, 14:16  [ТС]     Выделение несвязного текста цветом #5
спасибо, все работает!
но вот еще проблема: если в документе залить фон цветом в области, включающей несколько абзацев, таблицу и еще несколько абзацев после нее, то заливка таблицы будет не сплошной, а с белыми полосками по краям каждой ячейки. если потом выделить только таблицу, скопировать ее в другой документ, снова выделить только таблицу - то удалить цвет фона даже через меню не получается, что делать?

конечно, если выделить не только таблицу, а захватить еще несколько абзацев выше или ниже ее, то цвет фона уберется, но как быть, если нужно сохранить цвет фона всего документа, а от цвета фона только таблицы избавиться?
Вождь
216 / 48 / 2
Регистрация: 18.02.2010
Сообщений: 81
03.05.2011, 15:57     Выделение несвязного текста цветом #6
Как я уже писал, при изменении заливки кнопкой "Заливка", Ворд выбирает что-то одно (текст, абзац, таблица и др.), в зависимости от того, что выбрано. Но в окне "Границы и заливка" можно указать все детально, в т.ч. и объект с которым работаем. Окно "Границы и заливка" есть во всех версиях Ворд.
diletant2
6 / 4 / 1
Регистрация: 02.05.2011
Сообщений: 102
03.05.2011, 16:43  [ТС]     Выделение несвязного текста цветом #7
увы, через "Границы и заливку" тоже не пашет для таблицы
и само действие желательно повесить на хоткей

Добавлено через 18 минут
P.S. кстати, при заливке через "Границы и заливка" - окрашивает/обесцвечивает только эти белые полоски по краям ячейки...
Вождь
216 / 48 / 2
Регистрация: 18.02.2010
Сообщений: 81
03.05.2011, 18:10     Выделение несвязного текста цветом #8
Цитата Сообщение от diletant2 Посмотреть сообщение
...залить фон цветом в области, включающей несколько абзацев, таблицу...
В этом случае изменяется заливка абзацев, а не таблицы. Т.е. выбрав таблицу, надо очистить заливку абзацев.
diletant2
6 / 4 / 1
Регистрация: 02.05.2011
Сообщений: 102
03.05.2011, 18:28  [ТС]     Выделение несвязного текста цветом #9
Цитата Сообщение от Вождь Посмотреть сообщение
выбрав таблицу, надо очистить заливку абзацев.
как это?
можете привести код?
Вождь
216 / 48 / 2
Регистрация: 18.02.2010
Сообщений: 81
03.05.2011, 18:56     Выделение несвязного текста цветом #10
Можно в окне "Границы и заливка" указать применить к "абзацу", можно и кодом:
Visual Basic
1
Selection.ParagraphFormat.Shading.BackgroundPatternColor = wdColorAutomatic
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2011, 19:50     Выделение несвязного текста цветом
Еще ссылки по теме:

Выделение ячеек цветом, в зависсимости от диапазона цифр - VBA
Рябята, совсем запарился! Есть определенное количество строк цифр: 0 2 13 22 9 2 1 45 83 2 12 5 3 10 12 Нужно составить...

Выделение цветом значений до достижения определенной суммы - VBA
Всем привет! помогите плиз с макросом. в столбце F необходимо выделить все суммы начиная с последней пока сумма выделенных значений не...

Выделение строки цветом если найдено значение - VBA
Добрый день! Прошу помочь с написанием макроса. Идея макроса следующая: если значение найдено (выделяется соответствующая ячейка) -...

VBA снять выделение цветом отдельных ячеек диапазона - VBA
Здравствуйте! Снова задаю неумный вопрос. :sorry: Подскажите как снять заливку отдельных ячеек диапазона. Я смогла уговорить Excel...

Выделение цветом строки в Excel в зависимости от значения в ячейке - VBA
Задача такая: На листе Ексель есть несколько строк со значениями. Если в 13 столбце какой-нибудь строки присутствует '++', то всю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
diletant2
6 / 4 / 1
Регистрация: 02.05.2011
Сообщений: 102
03.05.2011, 19:50  [ТС]     Выделение несвязного текста цветом #11
хм, почему-то работает через раз, в чем дело?
Yandex
Объявления
03.05.2011, 19:50     Выделение несвязного текста цветом
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru