Нередко возникает потребность в долговременных формах менять цвет шрифта, например, изменяющихся на отчётную дату показателей. При распечатке на лазерном принтере цвета меняет тональность (шрифты светлеют, а заливка темнеет). Необходимо, чтобы на распечатанном файле не выделялась ни заливка, ни цвета шрифтов, это возможно?
Нередко возникает потребность в долговременных формах менять цвет шрифта, например, изменяющихся на отчётную дату показателей. При распечатке на лазерном принтере цвета меняет тональность (шрифты светлеют, а заливка темнеет). Необходимо, чтобы на распечатанном файле не выделялась ни заливка, ни цвета шрифтов, это возможно?jnxtns
Подберите цвета, которые будут удовлетворять вашим потребностям, в ворд есть палитра и её можно кастомизировать в RGB модели и выбирать конкретно их. Для цвета шрифта подойдёт свойство [vba]
[/vba] Менять до печати можете следующим образом: Жмёте ПКМ на модуль макросов Normal -> Insert -> ClassModule, называете его EventClass и в нём размещаете такой код [vba]
Код
Public WithEvents App As Word.Application Private Sub App_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean) MsgBox "Before Print" End Sub
[/vba] Вместо строки MsgBox "Before Print" пишете код, который вам будет менять цвет нужных участков. Я бы советовал создать Стили Word под свои нужды: стиль шрифта для печати, стиль шейдинга для печати. Тогда ваша строка будет работать так: для стиля шрифт для печати применить цвет шрифта такой-то, и аналогично для шейдинга.
В модуле макросов Normal -> Microsoft Word Objects -> This Document размещаете событие Document_Open и вызов регистрации класса вот так: [vba]
Код
Dim X As New EventClass Private Sub Document_Open() Set X.App = Word.Application End Sub
Подберите цвета, которые будут удовлетворять вашим потребностям, в ворд есть палитра и её можно кастомизировать в RGB модели и выбирать конкретно их. Для цвета шрифта подойдёт свойство [vba]
[/vba] Менять до печати можете следующим образом: Жмёте ПКМ на модуль макросов Normal -> Insert -> ClassModule, называете его EventClass и в нём размещаете такой код [vba]
Код
Public WithEvents App As Word.Application Private Sub App_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean) MsgBox "Before Print" End Sub
[/vba] Вместо строки MsgBox "Before Print" пишете код, который вам будет менять цвет нужных участков. Я бы советовал создать Стили Word под свои нужды: стиль шрифта для печати, стиль шейдинга для печати. Тогда ваша строка будет работать так: для стиля шрифт для печати применить цвет шрифта такой-то, и аналогично для шейдинга.
В модуле макросов Normal -> Microsoft Word Objects -> This Document размещаете событие Document_Open и вызов регистрации класса вот так: [vba]
Код
Dim X As New EventClass Private Sub Document_Open() Set X.App = Word.Application End Sub