[英]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.