1

Тема: Выделить текст, но не печатать выделение

Здравствуйте!
Часто при работе с документами мне надо изменить только некоторые слова в тексте.
Обычно эти слова выделены у меня красным или синим цветом шрифта, чтобы их изменить и ничего не пропустить. Однако при печати это выглядит некрасиво, т.к. цветной шрифт значительно бледнее основного.
Маркером это сделать нельзя, т.к. он виден при печати. Заливка тоже.
Что можете посоветовать, чтобы быстро визуально находить нужные слова в тексте?
Скрытый текст не предлагать, т.к. чёрное волнистое подчёркивание мне плохо видно среди текста. Надо что-то яркое.

2

Re: Выделить текст, но не печатать выделение

MakeMake пишет:

Здравствуйте!
Часто при работе с документами мне надо изменить только некоторые слова в тексте.
Обычно эти слова выделены у меня красным или синим цветом шрифта, чтобы их изменить и ничего не пропустить. Однако при печати это выглядит некрасиво, т.к. цветной шрифт значительно бледнее основного.
Маркером это сделать нельзя, т.к. он виден при печати. Заливка тоже.
Что можете посоветовать, чтобы быстро визуально находить нужные слова в тексте?
Скрытый текст не предлагать, т.к. чёрное волнистое подчёркивание мне плохо видно среди текста. Надо что-то яркое.

Можно предложить такой вариант: разметку текста не менять, а для печати текста разработать специальный макрос, который:
1. Приводит шрифт (или цвет маркирования / заливки) в документе к необходимому единообразному цвету или оформлению.
2. Выполняет печать документа
3. Откатывает проведенные в п. 1 изменения в документе к первоначальной рабочей разметке.

3

Re: Выделить текст, но не печатать выделение

yshindin пишет:

Можно предложить такой вариант: разметку текста не менять, а для печати текста разработать специальный макрос, который:
1. Приводит шрифт (или цвет маркирования / заливки) в документе к необходимому единообразному цвету или оформлению.
2. Выполняет печать документа
3. Откатывает проведенные в п. 1 изменения в документе к первоначальной рабочей разметке.

Например, макрос, который приведен далее: если выделена часть текста, то макрос печатает выделенный текст. Иначе, печатается весь документ. Перед печатью весь шрифт переводится в шрифт по умолчанию (т.е., черный), а после печати - изменения в шрифте откатываются.
'---------------------------------------------------------------
Sub PrintInNormalizedFont()
Dim prtrange As Variant
If Selection.range.End > Selection.range.Start Then
    prtrange = wdPrintSelection
    Selection.Font.Color = wdColorAutomatic
Else
    prtrange = wdPrintAllDocument
    ActiveDocument.range.Font.Color = wdColorAutomatic
End If
Application.PrintOut FileName:="", range:=prtrange, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:="", PageType:= _
        wdPrintAllPages, Collate:=True, Background:=False, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
ActiveDocument.Undo
End Sub
'---------------------------------------------------------------

4

Re: Выделить текст, но не печатать выделение

yshindin,
большое спасибо за столь оперативный ответ, и отдельное - за готовый макрос  smile
сегодня я его испытала - всё получилось!
2 вопроса:
- откат происходит не автоматически? его надо стрелкой "отменить/обратно/ctrl+z" производить?
- трюк получился только с цветным шрифтом, с заливкой и маркером не получилось.

5

Re: Выделить текст, но не печатать выделение

MakeMake пишет:

yshindin,
большое спасибо за столь оперативный ответ, и отдельное - за готовый макрос  smile
сегодня я его испытала - всё получилось!
2 вопроса:
- откат происходит не автоматически? его надо стрелкой "отменить/обратно/ctrl+z" производить?
- трюк получился только с цветным шрифтом, с заливкой и маркером не получилось.

Откат вручную делать не надо: это делает оператор макроса
ActiveDocument.Undo
Если у вас есть другие способы выделения текста, то надо соответствующий VBA-код указать. Напр., если у вас используется маркировка, то вместо строк
Selection.Font.Color = wdColorAutomatic
и
ActiveDocument.range.Font.Color = wdColorAutomatic

следует кодировать соответственно
Selection.range.highlightcolorindex = wdNoHighlight
и
ActiveDocument.range.highlightcolorindex = wdNoHighlight

Если же вы применяете совместно различные способы выделения (напр., цвет шрифта и маркировку), то следует в VBA-коде указывать оба способа, но тогда потребуется соответственно увеличить число операторов  ActiveDocument.Undo

6

Re: Выделить текст, но не печатать выделение

yshindin пишет:

Откат вручную делать не надо: это делает оператор макроса
ActiveDocument.Undo
. . .
тогда потребуется соответственно увеличить число операторов  ActiveDocument.Undo

Забыл написать - возможно, потребуется более точно посчитать число операторов ActiveDocument.Undo
Дело в том, что перед печатью документа Word автоматически обновляет поля в документе, вызывая тем самым дополнительные изменения. Чтобы гарантированно точно "откатиться" после печати на начальное состояние, можно рекомендовать печать проводить в таком порядке: сначала сохранить документ, потом закрыть его и снова открыть (при этом число изменений для документа установится в ноль).
Далее прогнать макрос печати, в котором предварительно сделать поправку: вместо оператора  ActiveDocument.Undo указать этот оператор с параметром: напр., ActiveDocument.Undo 100

7

Re: Выделить текст, но не печатать выделение

yshindin,
спасибо за ответы!
всё работает!
ещё одна просьба, можно как-то макрос изменить, чтобы не сразу печатало, а появлялось диалоговое окно печати(изменить принтер, число копий, кол-во страниц для печати), не всегда удобно печатать только по выделению.

8

Re: Выделить текст, но не печатать выделение

MakeMake пишет:

yshindin,
спасибо за ответы!
всё работает!
ещё одна просьба, можно как-то макрос изменить, чтобы не сразу печатало, а появлялось диалоговое окно печати(изменить принтер, число копий, кол-во страниц для печати), не всегда удобно печатать только по выделению.

Попробуйте вместо операторов анализа Selection и оператора печати указать оператор
Dialogs(wdDialogFilePrint).Show
Через него сможете задавать некоторые параметры.

9

Re: Выделить текст, но не печатать выделение

yshindin пишет:
MakeMake пишет:

yshindin,
спасибо за ответы!
всё работает!
ещё одна просьба, можно как-то макрос изменить, чтобы не сразу печатало, а появлялось диалоговое окно печати(изменить принтер, число копий, кол-во страниц для печати), не всегда удобно печатать только по выделению.

Попробуйте вместо операторов анализа Selection и оператора печати указать оператор
Dialogs(wdDialogFilePrint).Show
Через него сможете задавать некоторые параметры.

Да, конечно, надо не забыть оператор нормализации шрифта или маркировки при этом - напр., указать (до оператора вызова диалога печати) сразу для всего документа:
ActiveDocument.range.Font.Color = wdColorAutomatic

10

Re: Выделить текст, но не печатать выделение

yshindin,
с выбором печати не получается. Диалоговое окно открывается, я выбираю печать текущей страницы, но печатает весь документ!
если не трудно, измените макрос, чтобы я могла скопировать отсюда, потому что я делаю что-то не так (не очень понятно на словах где и что изменять и в какой последовательности).

11

Re: Выделить текст, но не печатать выделение

MakeMake пишет:

yshindin,
с выбором печати не получается. Диалоговое окно открывается, я выбираю печать текущей страницы, но печатает весь документ!
если не трудно, измените макрос, чтобы я могла скопировать отсюда, потому что я делаю что-то не так (не очень понятно на словах где и что изменять и в какой последовательности).

Попробуйте вот этот код:
'------------------------------------------------------------------------
Sub PrintInNormalizedFont()
ActiveDocument.range.Font.Color = wdColorAutomatic
Dialogs(wdDialogFilePrint).Show
ActiveDocument.Undo
End Sub
'------------------------------------------------------------------------

12

Re: Выделить текст, но не печатать выделение

yshindin,
Большое спасибо, Вы мне облегчили работу с документами!
Последний код идеален!

13

Re: Выделить текст, но не печатать выделение

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

14

Re: Выделить текст, но не печатать выделение

MakeMake пишет:

Маркером это сделать нельзя, т.к. он виден при печати.

Маркер - это выделение цветом? Я этим постоянно пользуюсь. Документы у меня как светофор, как минимум. Зеленым выделяю то в чем уверен, желтым - в чем сомнения, красным - то, что вызывает сомнения и что я планирую переосмыслить позже.

Перед печатью можно выделить весь документ (Ctrl+A) и снять выделение (применить "Нет выделения").

Выделение цветом считаю удобней форматирования, поскольку выделение цветом легко убрать.

Мой шаблон/макросы для автоматической нумерации Word 2003, 2007, 2010 и т.д. (стили, названия, перекрестные ссылки, LISTNUM). Делюсь: http://vk.com/club_alex_bir