迭代ppt组成员的困难(vba绝对初学者)

时间:2013-09-15 12:22:29

标签: vba iteration powerpoint

感谢道格: - )

我需要一个非程序员的想法如何实现迭代组。

我从SO开始,只要我只接受形状的.Names就可以正常工作。

但我也需要尝试检查组中每个项目的类型 我对形状有一整套问题(Sub CheckTextConformity)

这是运行时的代码 - 但忽略了组。我开始想要为组调用A子例程 - 但是如果组也包含组等,那该怎么办?

从Sub CheckAndReportOhneGroups()我调用Sub WhatTypes ...并根据我调用CheckTextConformity的类型给我关于形状的信息(特别是文本信息)。

1 个答案:

答案 0 :(得分:5)

要处理群组(以及群组内的群组),请使用以下内容:

Sub Example()

Dim oSh As Shape
Dim oSl As Slide

For Each oSl In ActivePresentation.Slides
    For Each oSh In oSl.Shapes
        If oSh.Type = msoGroup Then
            'Debug.Print "GROUP"
            Call DealWithGroups(oSh)
        Else
            Debug.Print oSh.Name & vbTab & oSh.Type
        End If
    Next
Next

End Sub

Sub DealWithGroups(oSh As Shape)
    Dim x As Long
    Debug.Print "GROUP"
    For x = 1 To oSh.GroupItems.Count
        If oSh.GroupItems(x).Type = msoGroup Then
            Call DealWithGroups(oSh.GroupItems(x))
        Else
            Debug.Print vbTab & oSh.GroupItems(x).Name & vbTab & oSh.GroupItems(x).Type
        End If
    Next
End Sub

是。蛇正在吃自己的尾巴。 ; - )