有没有一种方法可以将图像存储在.xlam文件中?

时间:2019-08-15 15:56:19

标签: excel vba

我目前正在处理大量使用用户表单的Excel加载项,该加载项使用图像作为用户表单中的UI元素。我目前将图像二进制文件存储在网络共享上,但我希望该插件自包含。

我知道我可以暂时禁用IsAddin并将图像直接粘贴到工作表中,但是从那里我不确定如何将图像从工作表中拉入窗体中图像对象的picture属性中。 / p>

有什么方法可以将该图像存储在.xlam本身中,然后在VBA空间中引用它?

谢谢!

1 个答案:

答案 0 :(得分:1)

这就是我所做的。我将图片文件放在UserForm中,然后从UserForm中调用图片,在目录中创建了一个临时文件,插入了图片,然后删除了该临时文件。这对我来说效果很好,并允许我在从头开始创建的工作表中插入徽标。

在我的子例程中,我有以下代码:

Dim UF as Object
Set UF = Application.Run("'Your Add-in Name.xlam'!GetUserForm1")
tempfile = ActiveWorkbook.Path & "\mypic.bmp"
SavePicture UF.Image1.Picture, tempfile

对于我来说,我是通过在页眉中插入文件来在PageSetup中使用的。

ws1.PageSetup.LeftHeaderPicture.FileName = tempfile

要插入工作表中,您可以使用

ActiveSheet.Pictures.Insert(tempfile)

稍后在我的子例程中,我使用删除该临时文件

Kill tempfile

此功能需要在模块中才能起作用

Public Function GetUserForm1() as UserForm1
     Set GetUserForm1 = UserForm1
End Function