Как установить цвет заливки TextRange?

В PowerPoint у меня есть объект TextRange, и я хотел бы установить цвет заливки (а не цвет шрифта).

Я знаю, что заданная форма может быть задана с помощью Fill.ForeColor, но как насчет объекта TextRange?


person kimon    schedule 13.11.2015    source источник


Ответы (1)


Вы не можете «заполнить» объект TextRange, но если вы пытаетесь заполнить текстовое поле, содержащее TextRange, вы заполняете форму, которая является двумя родителями над объектом TextRange.

e.g.

Dim oShp as Shape
Set oShp = ActivePresentation.Slides(1).Shapes(1)
' Fill the text with red
oShp.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255,0,0)
' Fill the text box with green
oShp.Fill.ForeColor.RGB = RGB(0,255,0)
person Jamie Garroch - MVP    schedule 13.11.2015
comment
Почти то, что я хочу сделать, это заполнить цвет фона, но только за текстом в TextRange, а не все текстовое поле - person kimon; 13.11.2015
comment
Как говорит Джейми, вы не можете этого сделать. Самое близкое, что вы можете сделать, это добавить прямоугольник нужного вам цвета и размера и разместить его с помощью свойств BoundingBox текстового диапазона. - person Steve Rindsberg; 14.11.2015
comment
Но я мог бы сделать это вручную, выбрав текст, а затем изменив цвет фона этого выделения. Неужели нельзя сделать то же самое через API? - person kimon; 14.11.2015
comment
Хорошо... Думаю, я был неправ. Я пытался сделать это вручную, но, похоже, нет способа изменить фон только выделенного текста... - person kimon; 14.11.2015
comment
Верно. Вы можете выделить текст в Word, чтобы получить этот эффект, но не в PPT. Для небольших объемов текста люди иногда делают именно это: создают его в Word, а затем копируют/вставляют в PPT. Если вы хотите попробовать другой метод, который я предложил, вот пример кода: pptfaq.com/FAQ00776_Highlight_text_in_PowerPoint.htm - person Steve Rindsberg; 15.11.2015