#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)