VBA相对于文本框放置图片

时间:2015-07-19 23:59:25

标签: excel vba excel-vba

我有一个excel电子表格,它从第一张表中获取数据并使用它来创建图表。在此图中,它显示了它创建的每个文本框上方的图片。它创建的图表基于一个模板,其中图片实际上是一个带有图片背景的空文本框。这是更改背景图片的代码:

ActiveWorkbook.ActiveSheet.Shapes.Range(Array(s_picFrame)).Select
With Selection.ShapeRange.Fill
    .Visible = msoTrue
    .UserPicture s_imageFile
    .TextureTile = msoFalse
End With

然而,此代码的问题在于插入的图片质量非常低,并且已调整大小/扭曲以适合原始框内。

尝试修复此问题我尝试导入图片,但是当我这样做时,图片需要设置绝对位置。这不起作用,因为由于上面文本框中的信息量,通常需要移动图片和文本框。

这是我用来导入图片的代码:

ActiveSheet.Shapes.AddPicture Filename:=s_imageFile, linktofile:=msoFalse, _ 
savewithdocument:=msoCTrue, Left:=0, Top:=0, Width:=-1, Height:=-1

有没有办法可以更改这些代码中的任何一条,以免扭曲我想要放置的图像,或者将图像放在文本框上方?

由于

1 个答案:

答案 0 :(得分:0)

更改形状Left:= 0,Top:= 0属性相对于文本框位置属性。

ActiveSheet.Shapes.AddPicture Filename:=s_imageFile,  linktofile:=msoFalse, _ 
savewithdocument:=msoCTrue, Left:=" & txtbox.left & ", _
Top:=" & txtbox1.top + txtbox.height & ", Width:=-1, Height:=-1