PowerPoint vba - Pour chaque forme dans chaque mise en page en MasterView
-
15-10-2019 - |
Question
Je suis en train de changer la langue de programatically chaque forme dans chaque customlayout dans un modèle PowerPoint et je ne peux pas comprendre comment faire cela. Je l'ai fait, mais je ne peux pas trouver la macro plus, donc je ne sais pas vraiment comment je l'ai fait. Je suis en mesure de sélectionner chaque mise en page personnalisée bien. Mais je dois faire une boucle à travers chaque zone de texte dans chaque mise en page et sélectionnez la langue. Mon problème est ciblons chaque forme. Comment puis-je faire?
est ce que j'ai à ce jour:
ActiveWindow.ViewType = ppViewSlideMaster
For Each oLayout In ActivePresentation.SlideMaster.CustomLayouts
oLayout.Select
Next
boucles essentiellement par chaque mise en page. Mais je ne peux pas comprendre comment sélectionner chaque espace réservé? Comment puis-je faire?
Edit: La résolution est maintenant:
For Each oLayout In ActivePresentation.SlideMaster.CustomLayouts
oLayout.Select
Dim oShape As Shape
For Each oShape In oLayout.Shapes
oShape.Select
Next
Next
La solution
Boucle à travers oLayout.Shapes
, ou peut-être oLayout.Shapes.Placeholders
.
Autres conseils
Merci vous deux. Je avais besoin d'une solution pour la mise à jour d'un objet Excel embarqué sur la diapositive principale. Cela a conduit à moi la solution parfaite
'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