簡體   English   中英

如何將 VBA 代碼應用於所有 Powerpoint 幻燈片

[英]How to apply VBA code to all Powerpoint slides

我有興趣將以下 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

以下宏將循環播放活動演示文稿中的每張幻燈片。 然后,對於每張幻燈片,它會遍歷幻燈片中的每個形狀,直到找到一個表格,然后格式化表格。

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

我用我創建的這個代碼(需要)提高了最后一個答案。 我需要瀏覽所有 SlideMaster、所有幻燈片、所有文本框並將它們放在最上面。 所以他們將永遠在圖片等面前。

Sub SetInFront()
Dim m, s, t, ma, sl, te

Set ma = ActivePresentation.Designs
For Each m In ma
    Set sl = m.SlideMaster.CustomLayouts
    For Each s In sl
        Set te = s.Shapes
        For Each t In te
            If t.HasTextFrame Then
                t.ZOrder 0
            End If
        Next t
    Next s
Next m

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM