gpt4 book ai didi

vba - 使用 VBA 将 MS PowerPoint 中的现有图像替换为新图像

转载 作者:行者123 更新时间:2023-12-04 20:15:17 25 4
gpt4 key购买 nike

我正在通过使用 VBA 将图像粘贴到不同的幻灯片上来更新我的 MS PowerPoint。

其余代码工作正常。我无法做的是删除所有幻灯片上的现有图像并粘贴新图像。目前它将新图像粘贴在旧图像之上,但旧图像仍然存在。我正在使用以下代码:

Dim pptApp  As PowerPoint.Application
Set pptApp = CreateObject("PowerPoint.Application")

pptApp.Visible = msoTrue

xlApp.Worksheets(2).Range("M2:S12").Copy
Set shp1 = ActivePresentation.Slides(17).Shapes.PasteSpecial(ppPasteEnhancedMetafile)(1)

With shp1
.Left = 370
.Top = 100
.Height = 360
.Width = 340
End With

作为 VBA 的新手,我不知道在上面的代码中在哪里以及如何添加删除命令。任何形式的帮助将不胜感激。

最佳答案

这(谢谢,L42)适用于幻灯片上的单个 msoPicture 形状,但如果有多个形状,它可能会遗漏一些:

Dim s As Shape

For Each s In ActivePresentation.Slides(17).Shapes
If s.Type = 13 Then s.Delete '13 is msoPicture
Next

为什么?假设幻灯片上有三个形状。我们遍历shapes集合,发现第一个shape是图片,删除。现在形状集合中有两个形状,但 VBA 的计数器不考虑集合计数的变化。它查看集合中的第二个形状,但现在是幻灯片上的第三个形状,因此代码将完全忽略形状 #2。

使用这样的东西更可靠:
Dim x as Long

For x = ActivePresentation.Slides(17).Shapes.Count to 1 Step -1
If ActivePresentation.Slides(17).Shapes(x).Type = msoPicture Then
ActivePresentation.Slides(17).Shapes(x).Delete
End If
Next

关于vba - 使用 VBA 将 MS PowerPoint 中的现有图像替换为新图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28274753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com