ВБА:Как выполнить действие над определенными элементами массива
-
19-09-2019 - |
Вопрос
В VBA for PowerPoint, насколько я понимаю, этот код получает только первую фигуру в активном окне и подталкивает ее:
Set oShape = oSlide.Shapes(1) oShape.Left = oShape.Left + 5
И если бы я хотел сдвинуть все фигуры, я бы использовал для этого цикл.
Но как я могу получить и подтолкнуть только определенные фигуры в зависимости от их количества?
Например, предположим, что в активном окне у меня всего 3 фигуры.Что делать, если я хочу сдвинуть фигуру 1 и фигуру 3, но не хочу трогать фигуру 2.Как я мог это сделать?
Решение
Если вы хотите указать конкретные фигуры по номеру, используйте что-то вроде этого:
For Each shapeNum In Array(1, 3, 5, 9, 10)
Set oShape = oSlide.Shapes(shapeNum)
oShape.Left = oShape.Left + 5
Next shapeNum
Если вы просто хотите случайным образом переместить определенные фигуры, используйте это:
For shapeNum = 1 To oSlide.Shapes.Count
If Rnd < 0.5 Then ''1 in 2 chance
Set oShape = oSlide.Shapes(shapeNum)
oShape.Left = oShape.Left + 5
End If
Next shapeNum
Если вам нужно что-то еще, добавьте подробности к своему вопросу.
Не связан с StackOverflow