PowerPoint VBA - для каждой формы в каждой макете в MasterView

StackOverflow https://stackoverflow.com/questions/4594291

  •  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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top