Измените цвет фигуры внутри подгруппы в VBA для Word

#vba #ms-word #vba7

Вопрос:

Здравствуйте, я хотел бы изменить цвет определенной фигуры под названием «icon1», которая находится в группе под названием «Box1», но этот «Box1» находится в группе под названием «BigBox1» (поэтому icon1 находится в подгруппе). В группе «Box1″ также есть другие фигуры и текстовые поля (другие фигуры:»icon2»,»icon3″/ «text1», «text2»), цвет которых я не хочу менять. Я попытался изменить цвет «значка1», но VBA сказал мне, что элемент с таким именем не может быть найден.

 Sub changeshapecolorinsubgroup()
ActiveDocument.Shapes("BigBox1").GroupItems("Box1").GroupItems("icon1").Fill.ForeColor.RGB = RGB(255, 200, 128)
End Sub
 

Я не знаю, как решить свою проблему, не могли бы вы мне помочь?

Комментарии:

1. Попробуйте это ActiveDocument.Shapes("BigBox1").GroupItems("icon1").Fill.ForeColor.RGB = RGB(255, 200, 128)

2. Я предполагаю, что BigBox1 это название окончательного shaperange, в котором есть все вышеперечисленные элементы. Если вы не уверены, как называется большая группа, выберите ее и в редакторе vba введите следующее ?Selection.ShapeRange.Name

3. И вы совершенно правы, это работает. Большое вам спасибо 😉

4. Я поставил это в качестве ответа на случай, если приведенный выше комментарий будет утерян. Также ответ может помочь будущим читателям.

Ответ №1:

Когда вы группируете все эти фигуры, они становятся одним шаблоном. Я предполагаю, что BigBox1 это название окончательного shaperange, в котором есть все вышеперечисленные элементы. Если вы не уверены, как называется большая группа, выберите ее и в редакторе vba введите следующее

 ?Selection.ShapeRange.Name
 

Наконец, вы можете достичь того, чего хотите, используя это

 ActiveDocument.Shapes("BigBox1").GroupItems("icon1").Fill.ForeColor.RGB = RGB(255, 200, 128)