ВБА:Как выполнить действие над определенными элементами массива

StackOverflow https://stackoverflow.com/questions/1713471

Вопрос

В 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

Если вам нужно что-то еще, добавьте подробности к своему вопросу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top