Макрос для изменения размера всех текстовых полей в презентации PowerPoint - PullRequest
0 голосов
/ 05 октября 2019

Я экспортировал PDF как презентацию PowerPoint. В PDF-файле были страницы формата А4, в то время как в PowerPoint есть широкие слайды (16: 9), и текст в конечном итоге центрировался в средней трети каждого слайда.

Мне нужно изменить размеры всех текстовых полей, чтобыподходят широкие горки. Я много гуглил (первый день пытался научиться использовать макросы), и я нашел что-то, чтобы изменить размеры картинок:

Sub Resize()
With ActiveWindow.Selection.ShapeRange
 .Height = 470
 .Width = 900
 .Left = 30
 .Top = 45
End with
End Sub

Если у меня выбрано текстовое поле и запущен вышеуказанный макрос, этомгновенно изменен размер до размеров, которые я хочу. Проблема в том, что мне нужно перейти к следующему слайду, выбрать текстовое поле и снова запустить макрос.

Есть ли способ автоматизировать это так, чтобы весь powerpoint редактировался путем запуска макроса всего один раз? время?

Спасибо!

1 Ответ

0 голосов
/ 05 октября 2019

В PowerPoint вы просматриваете каждую фигуру на каждом слайде, проверяя, является ли фигура нужным видом, прежде чем изменять ее размер:

Sub BatchChange()
  Dim oSlide As Slide
  Dim oShape As Shape
  For Each oSlide In ActivePresentation.Slides
    For Each oShape In oSlide.Shapes
      If oShape.HasTextFrame Then
        With oShape
          .Height = 470
          .Width = 900
          .Left = 30
          .Top = 45
        End With
      End If
    Next oShape
  Next oSlide
End Sub

Если на слайде имеется более одной фигуры с текстовой рамкойони будут сложены друг на друга.

...