簡體   English   中英

如何使用 VBA 調整 powerpoint 中每張幻燈片中的單個圖像的大小?

[英]How to resize a single image in each slide in powerpoint using VBA?

我需要這個案例的幫助,在互聯網上的任何地方都找不到答案。

基本上,我有一張幻燈片,里面有數百張幻燈片,每張都包含一張圖片。 我希望調整這張圖片的大小並將其移動到特定位置。

我制作的代碼調整了每張幻燈片上每張圖片的大小。

'''

Sub resizeImage()
Dim sld As Slide
Dim shp As Shape

For Each sld In ActivePresentation.Slides
    For Each shp In sld.Shapes
        With shp
            .Height = 400
            .Width = 300
            .Left = 45
            .Top = 45
        End With

    Next sld
    Next shp
  End Sub 

'''

我認為通過指定要調整大小的圖像名稱,我基本上可以只調整該圖片的大小,因為它們都具有名稱“Content Placeholder 2”並最終得到以下代碼:

'''

Sub resizeImage()
Dim sld As Slide
Dim shp As Shape

For Each sld In ActivePresentation.Slides
    For Each shp In sld.Shapes
        If shp.Name = ("Content Placeholder 2") Then
            With shp
                .Height = 400
                .Width = 300
                .Left = 45
                .Top = 45
            End With
        End If
    Next sld
    Next shp

  End Sub 

'''

我猜代碼沒有運行,因為前幾張幻燈片上不存在“內容占位符 2”。 但是當我添加 On Error Resume Next 時,所有內容都會調整大小。 感謝您的任何幫助或建議,非常感謝。

“當我添加 On Error Resume Next 時,所有內容都會調整大小”您是說使用它可以解決照片的問題,還是您的意思是所有對象都調整了大小,而不僅僅是照片? 如果是后者,您將需要一些其他標識符來調整形狀的大小,就像它的起始位置一樣。 此代碼檢查形狀頂部是否在 100 到 400 之間,然后在滿足這些條件時調整形狀的大小:

Sub resizeImage()
    Dim sld As Slide
    Dim shp As Shape

    For Each sld In ActivePresentation.Slides
        For Each shp In sld.Shapes
            If shp.Top > 100 And shp.Top < 400 Then
                With shp
                    .Height = 400
                    .Width = 300
                    .Left = 45
                    .Top = 45
                End With
            End If
        Next sld
    Next shp
End Sub

或者,如果每張幻燈片只有一個內容占位符,這將檢查名稱的第一部分是否正確,然后調整大小:

Sub resizeImage()
    Dim sld As Slide
    Dim shp As Shape

    For Each sld In ActivePresentation.Slides
        For Each shp In sld.Shapes
            If Left(shp.Name, 19) = "Content Placeholder" Then
                With shp
                    .Height = 400
                    .Width = 300
                    .Left = 45
                    .Top = 45
                End With
            End If
        Next sld
    Next shp
End Sub

暫無
暫無

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

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