【问题标题】:Power Point VBA - Copy Picture from Userform to SlidePowerpoint VBA - 将图片从用户窗体复制到幻灯片
【发布时间】:2021-04-14 15:44:21
【问题描述】:

尊敬的 StackOverFlow 成员,

是否可以将图片从用户窗体复制到幻灯片中?

我尝试了几种方法:

ActivePresentation.Slides(1).Shapes.AddPicture '文件名必须是字符串,因此我不能将用户窗体设置为源

我想到了类似frm_Userform.Image1.Picture 的方法来获取图片,但我不知道将图片设置在幻灯片中。

无法预定义图片路径,因为具有不同用户权限的多个用户将使用 makro(加载项)。

是否有其他可能性可以将图片保存在加载项中并在幻灯片上使用(粘贴)它?

提前谢谢你!

【问题讨论】:

  • 请发布您的代码。也许您可以备份并告诉我们您要完成的工作。这应该是替代图像选择器吗?为什么用户会选择用户表单上的图片?
  • 用户将收到一个自动创建的 PowerPoint 报告。该报告将由 Excelmacro 创建(无法访问)。该报告包含一个带有字符串列的列表:“customer1”、“customer2”和“customer3”。在每个字符串之后必须放置品牌徽标的图像。客户可以多次出现。如果我手动插入徽标并按要求粘贴它,它可以正常工作,但想跳过手动粘贴过程的一部分。因此,我尝试将徽标保存在用户表单中作为解决方法。
  • 您可以将徽标文件放在已知位置吗?然后你可以添加它们:

标签: vba powerpoint userform shapes


【解决方案1】:

您可以将徽标文件放在已知位置吗?然后您可以使用以下内容添加它们:

IconFile$ = AddinPath$ & "\YellowIcon.gif"
Set ShO = PresO.Slides(1).Shapes.AddPicture(FileName:=IconFile$, LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=0, Top:=0, Width:=10, Height:=10)
With ShO
    .ScaleHeight 1, msoTrue
    .ScaleWidth 1, msoTrue
End With

【讨论】:

  • 解决方法类似。谢谢你的回答:)
【解决方案2】:
Sub CopyFromUserFormToSlide

Const TempFolder = 2
Dim fso, path
Set fso = CreateObject("scripting.filesystemobject")
path = fso.GetSpecialFolder(TempFolder).Path & "\" & fso.GetTempName
SavePicture UserForm.Image1.Picture, path
ActivePresentation.Slides(1).Shapes.AddPicture path,msoFalse,msoTrue,150,150
fso.DeleteFile path

End Sub

这为我完成了这项工作。 Excel 解决方案在堆栈中,必须将其调整为 PowerPoint。还是谢谢你!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    相关资源
    最近更新 更多