VBA: Как выполнить действие с определенными элементами массива - PullRequest
2 голосов
/ 11 ноября 2009

В VBA для PowerPoint, насколько я понимаю, этот код получает только первую фигуру в активном окне и подталкивает его:

Set oShape = oSlide.Shapes(1)

oShape.Left = oShape.Left + 5

И если бы я хотел подтолкнуть все формы, я бы использовал для этого цикл.

Но как мне получить и подтолкнуть только определенные фигуры, основываясь на их количестве?

Например, допустим, у меня только 3 фигуры в активном окне. Что, если я хочу подтолкнуть фигуру 1 к фигуре 3, но я не хочу касаться фигуры 2. Как я могу это сделать?

1 Ответ

3 голосов
/ 11 ноября 2009

Если вы хотите указать конкретные фигуры по номеру , используйте что-то вроде этого:

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

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

...