簡體   English   中英

vba powerpoint:使用相同的“ with”更改多個形狀

[英]vba powerpoint: change multiple shapes using the same 'with'

我有一個宏,在其中創建兩個框,一個在幻燈片的頂部,一個在底部:oBoxTop和oBoxBottom。

目前我有這樣的事情:

Set oBoxTop = oSld.Shapes.AddShape(msoShapeRectangle, 0, 0, 720, 13)
    With oBoxTop
         .TextFrame.TextRange.Text = "TEXT"
         .TextFrame.TextRange.Font.Color.RGB = RGB(255, 255, 255)
         .TextEffect.FontSize = 15
    End With

Set oBoxBottom = oSld.Shapes.AddShape(msoShapeRectangle, 0, 0, 720, 13)
    With oBoxBottom
         .TextFrame.TextRange.Text = "TEXT"
         .TextFrame.TextRange.Font.Color.RGB = RGB(255, 255, 255)
         .TextEffect.FontSize = 15
    End With

由於兩個框都必須采用相同的格式設置,所以我希望只用一個代碼塊就可以做到這一點,而不是重復所有操作,即使只是稍微壓縮一下代碼也是如此。

由於幻燈片上還有其他形狀不需要更改(僅兩個剛創建的形狀需要更改),因此我嘗試了類似

With oBoxTop & oBoxBottom

要么

With oBoxTop and oBoxBottom

我嘗試過的所有選項均無效。 有什么方法可以將“ with function”用於多種形狀? 還是我必須完全不同地做?

為了進一步說明將形狀引用傳遞給另一個過程的意見。

我還沒有測試過,但是看起來應該像這樣:

Public Sub FormatShape(ShapeReference As Shape)

    With ShapeReference
         .TextFrame.TextRange.Text = "TEXT"
         .TextFrame.TextRange.Font.Color.RGB = RGB(255, 255, 255)
         .TextEffect.FontSize = 15
    End With

End Sub  

然后,您可以調用此過程並將其傳遞給其他形狀:

Sub Main()

    Set oBoxTop = oSld.Shapes.AddShape(msoShapeRectangle, 0, 0, 720, 13)
    FormatShape oBoxTop

    Set oBoxBottom = oSld.Shapes.AddShape(msoShapeRectangle, 0, 0, 720, 13)
    FormatShape oBoxBottom

    ' - - OR - -

    FormatShape oSld.Shapes.AddShape(msoShapeRectangle, 0, 0, 720, 13)
    FormatShape oSld.Shapes.AddShape(msoShapeRectangle, 0, 0, 720, 13)

End Sub  

編輯:我已經更新了過程名稱PositionShape具有誤導性。 我真的應該先正確閱讀問題。 :)

將名稱的Array()傳遞給Shapes.Range()可使您一次處理多個Shapes.Range()

Set oBoxTop = oSld.Shapes.AddShape(msoShapeRectangle, 0, 0, 720, 13)
Set oBoxBottom = oSld.Shapes.AddShape(msoShapeRectangle, 0, 0, 720, 13)

With oSld.Shapes.Range(Array(oBoxTop.Name, oBoxBottom.Name))
    .TextFrame.TextRange.Text = "TEXT"
    .TextFrame.TextRange.Font.Color.RGB = RGB(255, 255, 255)
    .TextEffect.FontSize = 15
End With

暫無
暫無

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

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