PowerPoint vba - 对于MasterView中每个布局中的每个形状

时间:2011-01-04 13:46:51

标签: vba powerpoint powerpoint-vba

我正在尝试以编程方式更改PowerPoint模板中每个customlayout中每个形状的语言,但我无法弄清楚如何执行此操作。我以前做过,但我找不到宏,所以我真的不知道我是怎么做到的。我已经能够选择每个自定义布局了。但是我需要遍历每个布局中的每个文本框并选择语言。我的问题是针对每个形状。我该怎么做?

这是我到目前为止所得到的:

ActiveWindow.ViewType = ppViewSlideMaster

For Each oLayout In ActivePresentation.SlideMaster.CustomLayouts
    oLayout.Select
Next   

这基本上遍历每个布局。但我无法弄清楚如何选择每个占位符?我该怎么做?

编辑:解决方案现在是:

For Each oLayout In ActivePresentation.SlideMaster.CustomLayouts
    oLayout.Select
    Dim oShape As Shape
    For Each oShape In oLayout.Shapes
        oShape.Select
    Next
Next

2 个答案:

答案 0 :(得分:2)

循环遍历oLayout.Shapes,或者oLayout.Shapes.Placeholders

答案 1 :(得分:0)

谢谢你们两个。我需要一个解决方案来更新主幻灯片上的嵌入式Excel对象。 这引导我找到完美的解决方案

'loops through all shapes in slidemaster
    Dim oShape As Shape
    For Each oShape In ActivePresentation.SlideMaster.Shapes
        oShape.Select
        'checks for excel object (type=7)
                 If oShape.Type = msoEmbeddedOLEObject Then
                    oShape.OLEFormat.Activate

                    ActiveWindow.Selection.Unselect  'deactivates shape
                End If
    Next