PowerPoint VBA - для каждой формы в каждой макете в MasterView
-
15-10-2019 - |
Вопрос
Я пытаюсь программатически изменить язык каждой формы в каждой CustomLayout в шаблоне PowerPoint, и я не могу понять, как это сделать. Я делал это раньше, но я больше не могу найти макрос, поэтому я не знаю, как я это сделал. Я смог выбрать каждый пользовательский макет, хотя. Но мне нужно пройти через каждый текстовый поток в каждом макете, а также выбрать язык. Моя проблема - нацелить каждую форму. Как мне это сделать?
Это то, что у меня есть до сих пор:
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
Решение
Переберите oLayout.Shapes
, или, возможно, oLayout.Shapes.Placeholders
.
Другие советы
Спасибо вам двое. Мне нужно было решение для обновления встроенного объекта 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