2

谢谢道格:-)

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

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

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

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

从 Sub CheckAndReportOhneGroups() 我调用 Sub WhatTypes... 并根据我调用 CheckTextConformity 的类型为我提供有关形状的信息(尤其是文本信息)。

4

1 回答 1

8

要处理组(可能还有组内的组),请使用以下内容:

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

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

于 2013-09-16T01:52:22.213 回答