我有一系列图像需要在两种形式(通过图像控件)和工作表(通过activeX图像控件)上多次显示。我知道我可以在外部保存文件并使用loadpicture
方法;但是如果可能的话,我想避免一些事情。
我也知道我可以保存并加载 - 但我不想再使用外部文件写来执行任务。理想情况下,所有内容都将保持嵌入并隐藏在文件本身中。
我认为使用剪贴板可能有一个解决方案 - 但我无法使用语法。对象始终嵌入在相同的位置;它永远不会移动或改变大小或其他属性(超出.visible)。所以我真正想做的就是简单的事情;
Sheet1.oleobjects("toImage").object.picture = frm1.fromImage.picture
**编辑:**
我想我找到了解决方案;但仍然有一个相关的问题。
如果我在一张纸上嵌入一系列的activeX图像,我发现我能做我想做的事情;然后在我想要的实际控件/对象中引用它们。所以;
Sheet1.oleobjects("toImage").object.picture=Sheet1.oleobjects("FromImage").object.picture
或
frm1.Controls("toImage").picture = Sheet1.oleobjects("FromImage").object.picture
但是,当我尝试使用插入的图片(形状对象)做同样的事情时,下面的代码不起作用;
frm1.toImage.picture = sheet1.shape("FromImage").picture
..是无效的语法。似乎我唯一可以做的就是复制它们 - 我不能用它们来设置另一个对象的图片而不使用剪贴板。
上面的解决方案适合我(使用一系列activeX图像对象而不是图片) - 但我很好奇为什么我不能使用标准图片(形状)。
答案 0 :(得分:0)
如果要在Excel工作表中添加图片,请使用以下内容:
(您可以将ActiveSheet
更改为您最喜欢的表格)
Dim aSheet As Worksheet
Dim aShape As Shape
Set aSheet = ActiveSheet
Set aShape = aSheet.Shapes.AddPicture("<FileName>", msoFalse, msoTrue, 120, 120, 200, 200)
有关详情:
函数AddPicture (文件名为字符串,LinkToFile为MsoTriState,SaveWithDocument为MsoTriState,左为单,顶部为单,宽度为单,高度为单)作为形状
函数AddPicture2 (文件名为字符串,LinkToFile为MsoTriState,SaveWithDocument为MsoTriState,左为单,顶部为单,宽度为单,高度为单,高度为MsoPictureCompress)为Shape
如果您想将图片加载到表单上的Image
组件:
(将Image
组件添加到表单[:Image1])
Set Image1.Picture = LoadPicture("<FileName>")