Объект Word FillFormat — Заливка фигур

Объект Word FillFormat — Заливка фигур Объектная модель Microsoft Word

Всем привет, с вами автор блога scriptcoding.ru. Сегодня мы рассмотрим работу с классом FillFormat объектной модели Word, который отвечает за заливку графических фигур.

Объект FillFormat определяет параметры заливки в ворде для графических фигур. Он позволяет определять формат заливки в ворде с помощью заданного цвета, с помощью градиента, заданного шаблона или стиля. Доступ к классу осуществляется через свойство Fill объекта Shape. Стоит учитывать, что примеры для данной статьи я тестировал на версии Word 2007, и поэтому, мне пришлось опустить некоторые свойства класса FillFormat, так как они доступны начиная с версии 2010.

Класс FillFormat – заливка в ворде

Свойства – как сделать заливку в ворде

делаем заливку в word

Application— Вернет объект Application, представляющий приложение Microsoft Word.

BackColor— Вернет или определит класс ColorFormat, представляющий цвет фона для заливки Word.

ForeColor— Возвращает или задает объект ColorFormat, представляющий цвет переднего плана для заливки в ворде.

GradientStops— Вернет коллекцию GradientStops, связанную с указанным форматом заполнения. Начиная с версии 2010.

PictureEffects— Вернет объект PictureEffects, который может использоваться для применения изображения в качестве заливки в ворде. Начиная с версии 2010.

GradientAngle— Возвращает или задает угол градиентной заливки. Начиная с версии 2010.

GradientColorType— Возвращает тип градиента для указанной заливки в Word. Только чтение, значения константы MsoGradientColorType:

  • msoGradientColorMixed — -2 – Смешанные цвета заливки в ворде.
  • msoGradientOneColor — 1 – Один цвет заливки в ворде.
  • msoGradientTwoColors — 2 – Два цвета заливки в Word.
  • msoGradientPresetColors — 3 – Цвет градиента устанавливается в соответствии со значение константы msoPresetGradientType.

GradientStyle— Возвращает стиль штриховки градиента для заливки в ворде. Только чтение, значение константы MsoGradientStyle.

GradientVariant— Возвращает вариант градиента для указанной заливки word как целое значение от 1 до 4.

Pattern— Возвращает значение константы MsoPatternType, представляющей шаблон, который использует заливка в Word.

PresetGradientType— Возвращает заданный тип градиента для указанной заливки в ворде. Значения константы MsoPresetGradientType.

PresetTexture— Вернет заданную текстуру для указанной заливки. Значения константы MsoPresetTexture.

RotateWithObject— Возвращает или устанавливает, вращается ли заливка с заданной формы. Чтение / запись. !!!!2010

TextureAlignment— Возвратит или задаст выравнивание (происхождение координатной сетки) для плитки от заполнения текстур. Начиная с версии 2010.

TextureHorizontalScaleи TextureVerticalScale— Возвращает или задает значение, определяющее коэффициент горизонтального или вертикального масштабирования для заполнения текстур. Начиная с версии 2010.

TextureName— Имя файла пользовательской текстуры для указанной заливки ворд.

TextureOffsetXи TextureOffsetY— Задает значение, которое определяет горизонтальное или вертикальное смещение текстуры от начала координат в пунктах. Чтение и запись.

TextureTile— Значение, указывающее положение текстуры заливки в Word плиткой или по центру. Чтение и запись. Начиная с версии 2010.

TextureType— Тип текстуры для указанной ворд заливки. Значение константы MsoTextureType:

  • msoTextureTypeMixed — -2 – Смешанные значение.
  • msoTexturePreset — 1 – Указать тип текстуры.
  • msoTextureUserDefined — 2 — Пользователь определяет тип текстуры.

Transparency— Степень прозрачности, значение от 0,0 (непрозрачный) до 1.0 (прозрачный). Запись и чтение.

Type— Тип формата заполнения. Только чтение, значение константы MsoFillType:

  • msoFillMixed — -2 – Смешанная заливка в Word.
  • msoFillSolid — 1 — Сплошная заливка.
  • msoFillPatterned — 2 – Заливка по образцу.
  • msoFillGradient — 3 — Градиентная заливка.
  • msoFillTextured — 4 — Текстурированная заливка.
  • msoFillBackground — 5 – Заливка Word такая же, как на заднем плане.
  • msoFillPicture — 6 – Заливка с помощью изображения.

Visible– Свойство позволяет включить (true) или отключить (false) заливку в Word.

Методы – заливка в word

как сделать в ворде заливку

OneColorGradient(Style, Variant, Degree) — Устанавливает градиент, состоящий из одного цвета заливки в ворде.

Style — Стиль градиента. Значение константы MsoGradientStyle:

  • msoGradientMixed — -2 — Смешанный градиент.
  • msoGradientHorizontal — 1 – Переход по горизонтали.
  • msoGradientVertical — 2 – Переход по вертикали.
  • msoGradientDiagonalUp — 3 — Переход от нижнего угла до противоположного угла по диагонали.
  • msoGradientDiagonalDown — 4 — Переход от верхнего угла до противоположного угла по диагонали.
  • msoGradientFromCorner — 5 — Переход с угла к трем другим углам.
  • msoGradientFromTitle — 6 — Переход от углов к центру.
  • msoGradientFromCenter — 7 – Переход от центра к углам.

Variant – Вариант градиента. Может иметь значение от 1 до 4, в соответствии с четырьмя вариантами на вкладке «Градиент» в диалоговом окне «Способы заливки». Если свойство Style установлено в 7, то этот аргумент может быть 1 или 2.

Degree — Степень градиента. Может иметь значение от 0,0 (темный) до 1,0 (светлый).

TwoColorGradient(Style, Variant) — Устанавливает градиент, состоящий из двух цветов для заливки в Word.

PresetGradient(Style, Variant, PresetGradientType) — Устанавливает заданную заготовку для градиента.

PresetGradientType – Тип заготовки, значения константы MsoPresetGradientType.

PresetTextured(PresetTexture) — Устанавливает заданную заливку заданной текстурой. Параметр принимает значения константы MsoPresetTexture.

Patterned(Pattern) — Устанавливает заданный узор, который будет использовать заливка в Word. Параметр принимает значение константы MsoPatternType.

Solid — Устанавливает заданную заливку Word равномерным цветом. .

UserPicture(PictureFile) — Заполняет заданную форму одним большим изображением. Параметр определяет путь к файлу и его имя.

UserTextured(TextureFile) — Заполняет заданную фигуру небольшими плитками изображения. Параметр определяет путь к файлу и его имя.

Хорошо, с теорией мы разобрались, теперь настало время приступить к программированию. Я приведу примеры программного кода для языков VBScript и JScript, которые работают под управлением сервера Windows Script Host.

Программный код на языке VBSCRIPT:

заливка в ворд цветом
цвета для заливки в ворд
' ********************************************************************' Класс FillFormat - заливка в ворде' FillFormat.vbs' ******************************************************************** OptionExplicit dim oWord, oDoc, shpCanvas, i Set oWord = CreateObject("Word.Application")' ссылка на ApplicationSet oDoc = oWord.Documents' ссылка на DocumentsoDoc.Add()oWord.Visible = trueSet shpCanvas = oDoc(1).Shapes' ссылка на Shapes '*****************************************************' добавляем в документ три различные фигуры'*****************************************************With shpCanvas .AddCallout 3, 80, 10, 50, 50 .AddShape101, 200, 10, 50, 50 .AddTextEffect1, "Заливка в Word", "Times New Roman", 20, false, false, 300, 10EndWith '*****************************************************' Определяем цвет заливки в ворде для первых 3-х фигур'***************************************************** MsgBox RGB(128,0,93) With shpCanvas(1).Fill .ForeColor.RGB = RGB(0,0,128) .Visible = trueEndWithWith shpCanvas(2).Fill .ForeColor.RGB = RGB(128,0,93) .Visible = trueEndWithWith shpCanvas(3).Fill .ForeColor.RGB = RGB(128,102,0) .Visible = trueEndWith '--------------------------------------------------------------------------------dim iCount iCount = 10for i = 1 to 7shpCanvas.AddShape 101, iCount, 70, 50, 50iCount = iCount + 80next iCount = 1for i =4 to 10 With shpCanvas(i).Fill .OneColorGradient iCount, 2, 0 .ForeColor.RGB = RGB(50 + iCount*20,10 + iCount*20,255) .Visible = trueEndWithiCount = iCount + 1next '-------------------------------------------------------------------------------- dim iCount1' убрать заливку текста в вордеiCount1 = 10for i = 1 to 7shpCanvas.AddShape 101, iCount1, 130, 50, 50iCount1 = iCount1 + 80next iCount1 = 1for i =11 to 17 With shpCanvas(i).Fill .TwoColorGradient iCount1, 2 .BackColor.RGB = RGB(275 - iCount1*20 ,0,0) .ForeColor.RGB = RGB(50 + iCount1*20,0,255) .Visible = trueEndWithiCount1 = iCount1 + 1next '--------------------------------------------------------------------------------dim iCount2iCount2 = 10for i = 1 to 12shpCanvas.AddShape 1, iCount2, 200, 40, 40 iCount2 = iCount2 + 45next iCount2 = 10for i = 1 to 12shpCanvas.AddShape 1, iCount2, 250, 40, 40iCount2 = iCount2 + 45next iCount2 = 1for i =18 to 41 With shpCanvas(i).Fill .PresetGradient 3, 2, iCount2 .Visible = trueEndWithiCount2 = iCount2 + 1next '--------------------------------------------------------------------------------dim iCount3' как убрать заливку в вордеiCount3 = 10for i = 1 to 12shpCanvas.AddShape 1, iCount3, 310, 40, 40iCount3 = iCount3 + 45next iCount3 = 10for i = 1 to 12shpCanvas.AddShape 1, iCount3, 360, 40, 40iCount3 = iCount3 + 45next iCount3 = 1for i =42 to 65 With shpCanvas(i).Fill .PresetTextured iCount3 .Visible = trueEndWith iCount3 = iCount3 + 1next '--------------------------------------------------------------------------------dim iCount4iCount4 = 10for i = 1 to 12shpCanvas.AddShape 1, iCount4, 420, 40, 40iCount4 = iCount4 + 45next iCount4 = 10for i = 1 to 12shpCanvas.AddShape 1, iCount4, 470, 40, 40iCount4 = iCount4 + 45next iCount4 = 10for i = 1 to 12shpCanvas.AddShape 1, iCount4, 520, 40, 40iCount4 = iCount4 + 45next dim iCount5iCount5 = 10for i = 1 to 12shpCanvas.AddShape 1, iCount5, 570, 40, 40iCount5 = iCount5 + 45next iCount5 = 1 ' как сделать заливку в вордеfor i =66 to 113 With shpCanvas(i).Fill .ForeColor.RGB = RGB(0,153,253) .Patterned iCount5 .Visible = trueEndWithiCount5 = iCount5 + 1next

Программный код на языке JSCRIPT:

заливка в ворд фона
как в ворде убрать заливку
// ********************************************************************// Класс FillFormat - заливка в ворде// FillFormat.js// ******************************************************************** var oWord1, oDoc1, shpCanvas1, i; oWord1 = WScript.CreateObject("Word.Application");// ссылка на ApplicationoDoc1 = oWord1.Documents;// ссылка на DocumentsoDoc1.Add();oWord1.Visible=true;shpCanvas1 = oDoc1(1).Shapes;// ссылка на Shapes //*****************************************************// добавляем в документ три различные фигуры//*****************************************************with(shpCanvas1){ AddCallout(3,80,10,50,50); AddShape(101,200,10,50,50); AddTextEffect(1,"Заливка в Word","Times New Roman",20,false,false,300,10);} //*****************************************************// Определяем цвет заливки в ворде для первых 3-х фигур//*****************************************************with(shpCanvas1(1).Fill){ ForeColor.RGB= rgbToHex(0,0,128); Visible =true;}with(shpCanvas1(2).Fill){ ForeColor.RGB= rgbToHex(128,0,93); Visible =true;}with(shpCanvas1(3).Fill){ ForeColor.RGB= rgbToHex(128,102,0); Visible =true;} //-------------------------------------------------------------------------------- var iCount6;// убрать заливку текста в вордеiCount6 =10;for(i =1; i<=7; i++){shpCanvas1.AddShape(101, iCount6,70,50,50);iCount6 +=80;} iCount6 =1;for(i =4; i<=10; i++){ with(shpCanvas1(i).Fill){ OneColorGradient(iCount6,2,0); ForeColor.RGB= rgbToHex(50+ iCount6*20,10+ iCount6*20,255); Visible =true;}iCount6 ++;} //--------------------------------------------------------------------------------var iCount7;iCount7 =10;for(i =1; i<=7; i++){shpCanvas1.AddShape(101, iCount7,130,50,50);iCount7 +=80;} iCount7 =1;for(i =11; i<=17; i++){ with(shpCanvas1(i).Fill){ TwoColorGradient(iCount7,2); BackColor.RGB= rgbToHex(275- iCount7*20,0,0); ForeColor.RGB= rgbToHex(50+ iCount7*20,0,255); Visible =true;}iCount7 ++;} //--------------------------------------------------------------------------------var iCount8;iCount8 =10;for(i =1; i<=12; i++){shpCanvas1.AddShape(1, iCount8,200,40,40);iCount8 +=45;}iCount8 =10;for(i =1; i<=12; i++){shpCanvas1.AddShape(1, iCount8,250,40,40);// как убрать заливку в вордеiCount8 +=45;} iCount8 =1;for(i =18; i<=41; i++){ with(shpCanvas1(i).Fill){ PresetGradient(3,2, iCount8); Visible =true;}iCount8 ++;} //--------------------------------------------------------------------------------var iCount9;iCount9 =10;for(i =1; i<=12; i++){shpCanvas1.AddShape(1, iCount9,310,40,40);iCount9 +=45;}iCount9 =10;for(i =1; i<=12; i++){shpCanvas1.AddShape(1, iCount9,360,40,40);iCount9 +=45;} iCount9 =1;for(i =42; i<=65; i++){ with(shpCanvas1(i).Fill){ PresetTextured(iCount9); Visible =true;}iCount9 ++;} //--------------------------------------------------------------------------------var iCount10;iCount10 =10;for(i =1; i<=12; i++){shpCanvas1.AddShape(1, iCount10,420,40,40);iCount10 +=45;}iCount10 =10;for(i =1; i<=12; i++){shpCanvas1.AddShape(1, iCount10,470,40,40);iCount10 +=45;}iCount10 =10;for(i =1; i<=12; i++){shpCanvas1.AddShape(1, iCount10,520,40,40);iCount10 +=45;}var iCount11;iCount11 =10;for(i =1; i<=12; i++){shpCanvas1.AddShape(1, iCount11,570,40,40);iCount11 +=45;} iCount11 =1for(i =66; i<=113; i++){ with(shpCanvas1(i).Fill){ ForeColor.RGB= rgbToHex(0,153,253); Patterned(iCount11); Visible =true;}iCount11 ++} //*****************************************************// Функция преобразования RGB цвета в// десятичное значение//***************************************************** как сделать заливку в вордеfunction rgbToHex (r, g, b){r = r.toString(16);g = g.toString(16);b = b.toString(16);if(r.length==1) r ='0'+ r;if(g.length==1) g ='0'+ g;if(b.length==1) b ='0'+ b;myStr =(b + g + r).toUpperCase()return parseInt("0x".concat(myStr))}

Тут я привел два примера программного кода на языке vbscript и jscript, логика двух сценариев одинакова: происходит создание нового документа Word, а далее следует добавление различных фигур, к ним применяется заливка Word с различными параметрами. Стоит обратить внимание, что для сценария на языке jscript мне пришлось добавить функцию rgbToHex, которая выполняет аналогичные действия, что и функция RGB в языке VBScript или VBA. Дело в том, что язык Jscript не располагает встроенной функцией, которая бы позволила указывать три компонента нужного цвета.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий