VBA:如何对数组的特定元素执行操作

时间:2009-11-11 06:45:33

标签: arrays vba powerpoint loops powerpoint-vba

在VBA for PowerPoint中,据我所知,此代码只获取活动窗口中的第一个形状并轻推它:

Set oShape = oSlide.Shapes(1)

oShape.Left = oShape.Left + 5

如果我想轻推所有形状,我会使用一个循环。

但是,我怎样才能根据他们的数字得到并推动某些形状呢?

例如,假设我在活动窗口中只有3个形状。如果我想轻推形状1和形状3,但我不想触摸形状2.我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

如果要按编号指定特定形状,请使用以下内容:

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

如果您还想要其他内容,请在问题中添加详细信息。