我目前正在处理大量使用用户表单的Excel加载项,该加载项使用图像作为用户表单中的UI元素。我目前将图像二进制文件存储在网络共享上,但我希望该插件自包含。
我知道我可以暂时禁用IsAddin并将图像直接粘贴到工作表中,但是从那里我不确定如何将图像从工作表中拉入窗体中图像对象的picture属性中。 / p>
有什么方法可以将该图像存储在.xlam本身中,然后在VBA空间中引用它?
谢谢!
答案 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