Frage

Ich versuche, die Sprache jeder Form in jedem CustomLayout in einer PowerPoint -Vorlage programmatisch zu ändern, und ich kann nicht herausfinden, wie das geht. Ich habe es schon einmal gemacht, aber ich kann das Makro nicht mehr finden, also weiß ich nicht wirklich, wie ich es gemacht habe. Ich konnte jedoch jedes benutzerdefinierte Layout auswählen. Aber ich muss jedes Textfeld in jedem Layout durchlaufen und auch die Sprache auswählen. Mein Problem ist es, jede Form zu zielen. Wie mache ich das?

Das habe ich so weit:

ActiveWindow.ViewType = ppViewSlideMaster

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

Dies schenkt im Grunde jedes Layout durch. Aber ich kann nicht herausfinden, wie ich jeden Platzhalter auswählen kann? Wie mache ich das?

Bearbeiten: Auflösung ist jetzt:

For Each oLayout In ActivePresentation.SlideMaster.CustomLayouts
    oLayout.Select
    Dim oShape As Shape
    For Each oShape In oLayout.Shapes
        oShape.Select
    Next
Next
War es hilfreich?

Lösung

Durchschleifen oLayout.Shapes, oder vielleicht oLayout.Shapes.Placeholders.

Andere Tipps

Danke euch zwei. Ich brauchte eine Lösung, um ein eingebettetes Excel -Objekt auf der Master -Folie zu aktualisieren. Dies führte mich zu der perfekten Lösung

'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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top