Как применить код VBA ко всем слайдам Powerpoint - PullRequest
0 голосов
/ 19 сентября 2018

Мне интересно применить следующий код VBA ко всем слайдам в моей презентации Powerpoint.Код ниже изменяет размеры моей таблицы в соответствии с точными спецификациями, которые мне нужны.Есть ли у вас какие-либо советы о том, как применить это на протяжении всей моей презентации?Заранее спасибо.

Sub ResizeAlign()
    With ActiveWindow.Selection.ShapeRange
    .Height = 216
    .Width = 864
    .Left = 48
    .Top = 198
        ActiveWindow.Selection.ShapeRange.ZOrder msoSendToBack
    End With
End Sub

1 Ответ

0 голосов
/ 19 сентября 2018

Следующий макрос будет проходить по каждому слайду в активной презентации.Затем для каждого слайда он будет проходить по каждой фигуре внутри слайда, пока не найдет таблицу, а затем отформатирует таблицу.

Option Explicit

Public Sub ResizeAlignPresentation()
    Dim currentSlide As Slide
    For Each currentSlide In ActivePresentation.Slides
        ResizeAlignSlide currentSlide
    Next
End Sub

Private Sub ResizeAlignSlide(ByVal target As Slide)
    Dim currentShape As Shape
    For Each currentShape In target.Shapes
        If currentShape.Type = msoTable Then
            ResizeAlignTable currentShape
            Exit For
        End If
    Next
End Sub

Private Sub ResizeAlignTable(ByVal table As Shape)
    With table
        Debug.Assert .Type = msoTable 'if code breaks here, we have a bug!
        .Height = 216
        .Width = 864
        .Left = 48
        .Top = 198
        .ZOrder msoSendToBack
    End With
End Sub
...