搜索了一段时间后,我仍然找不到解决该问题的方法。
背景: 我正在尝试构建一个产品配置器,该配置器将根据表单中的选择逐步显示成品的图像。
“概述”图像将是“背景图像”,而具有透明背景的图像将彼此重叠。
我的问题
用于以后编程的其他信息:
我希望能够删除已经插入的图像
我不在乎图像是否需要为png或gif
如果无法通过表单完成此操作,则可以在excel工作表中进行操作,但需要将图像完全放置在工作表上的相同位置,并且彼此重叠
LoadPictureGDI
我只是用来尝试将.png图像插入表单
(我也尝试过使用.gif图片,而不使用LoadPictureGDI
,但结果与上述问题相同)
到目前为止,我的代码:
Sub Sample(var_ec_image)
Select Case var_ec_image
Case "ec_base": AddPicture ("ec_base")
End Select
End Sub
Sub AddPicture(picname As String)
' print picture from selection of form
image_box.Picture = LoadPictureGDI( _
ThisWorkbook.Path & "\images\" & picname & ".png")
' print test image on top of first image
image_box.Picture = LoadPictureGDI( _
ThisWorkbook.Path & "\images\ec_tilt_upper_part.png")
End Sub
答案 0 :(得分:1)
您已经发现,默认情况下,Excel使插入的图像不透明(不透明)。
但是,您可以选择一种特定的颜色以使其透明。
Format
标签。 Adjust
组中,单击颜色。
⤷图片来源: "Why is one stack piece in the Stack Overflow logo slightly off?"
您可以使用PictureFormat.TransparentBackground
Property以编程方式设置透明颜色。
例如,以使名为“图片1”的图像的白色部分透明:
Sub WhiteToTransparent()
With ActiveSheet.Shapes("Picture 1")
With .PictureFormat
.TransparentBackground = True
.TransparencyColor = vbWhite
End With
.Fill.Visible = False
End With
End Sub
根据documentation改编的示例。
答案 1 :(得分:0)
好吧,所以有时候最简单的解决方案是没想到的:) 这对我有用,因为我只有8张照片要处理。
这是如何解决的:
在用户窗体中,我为每个透明图像添加了一个图像控件,还为“基本图像”添加了一个图像控件。
所有图像控件的宽度和高度均相同,并且彼此放置。 图像控件的“ BackStyle”设置为“透明”。 在“图片”中,我插入了不同的(透明)图片。
然后我根据表单中的选择“隐藏”或“显示”特定的图像控件。
If machine_form.Image2.Visible = False Then
machine_form.Image2.Visible = True
Else
machine_form.Image2.Visible = False
End If
我很感谢获得的帮助,我想未来还会有更多问题