【问题标题】:In VBA, how do I sequentially add an image to each slide?在 VBA 中,如何按顺序将图像添加到每张幻灯片?
【发布时间】:2013-07-30 17:33:49
【问题描述】:

我需要向演示文稿中的每张幻灯片添加一系列编号为 0 - 1400 的图像,步长为 56(0、56、112 等),然后使背景透明

到目前为止我有:

Sub InsertImage()

ActiveWindow.Selection.SlideRange.Shapes.AddPicture( _
 FileName:="C:\Folder\Image0.bmp", _
 LinkToFile:=msoFalse, _
 SaveWithDocument:=msoTrue, Left:=25, Top:=90, _
 Width:=265, Height:=398.5).Select

End Sub

Sub MakeTransparent()

  With ActiveWindow.Selection.ShapeRange
     .PictureFormat.TransparentBackground = msoTrue
     .PictureFormat.TransparencyColor = RGB(41, 41, 241)
     .Fill.Visible = msoFalse
  End With

End Sub

哪一个会单独做每一个,但这并不比一个一个做更快?

非常感谢任何帮助!

谢谢,

劳伦

【问题讨论】:

    标签: image vba loops powerpoint


    【解决方案1】:

    假设您想从幻灯片 1 开始,并且您已经在演示文稿中有足够的幻灯片来包含所有图像,请尝试以下操作(总空气代码):

    Sub InsertImages()
    
    Dim lImageNumber as Long
    Dim lSlideNumber as Long 
    Dim oSh as Shape
    
    lSlideNumber = 1  ' Slide counter
    
    For lImageNumber = 0 to 1400 Step 56
       Set oSh = ActivePresentation.Slides(lSlideNumber).Shapes.AddPicture( _
         FileName:="C:\Folder\Image" & cstr(lImageNumber) & ".bmp", _
         LinkToFile:=msoFalse, _
         SaveWithDocument:=msoTrue, Left:=25, Top:=90, _
         Width:=265, Height:=398.5)
    
         lSlideNumber = lSlideNumber + 1
    
        With oSh
         .PictureFormat.TransparentBackground = msoTrue
         .PictureFormat.TransparencyColor = RGB(41, 41, 241)
         .Fill.Visible = msoFalse
        End With
    
    Next
    
    End Sub
    

    【讨论】:

    • 啊,太棒了。我以前从未使用过 VBA,所以很高兴有一个简洁的答案。谢谢:-)
    • 太棒了...很高兴能够提供帮助。为您清楚地说明您的问题并显示您尝试过的代码而加分。让我们的工作轻松多了。 ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多