在使用Excel的过程中经常会碰到需要处理图形的时候。
在excel中插入图形后,它的位置和大小是最经常需要调整的。
在excel 2007版本以后,vba使用Shape对象来处理所有种类的图形对象,包括文本框,线条、图片等。
如果要用vba插入本地电脑中的图片,可以使用Shapes.AddPicture方法,它的语法如下:
expression.AddPicture (FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height)
其中Left, Top, Width, Height参数表示插入后的图片所在的左、上位置和宽度和高度。
以下代码列举了一些常用的处理图形对象的方法。
Sub QQ1722187970() Dim oSP Dim oWK As Worksheet Dim sPath As String sPath = "C:\Users\Ruibron\Pictures\头像.png" Set oWK = ActiveSheet '插入图片的代码 Set oSP = oWK.Shapes.AddPicture("C:\Users\Ruibron\Pictures\头像.png", msoCTrue, msoCTrue, 1, 1, 100, 100) '重设图片大小的代码 With oSP .ScaleHeight 1, msoCTrue, msoScaleFromTopLeft .ScaleWidth 1, msoCTrue, msoScaleFromTopLeft End With '让图片填充到具体的单元格内的代码 With oSP .Left = oWK.Range("b2").Left .Top = oWK.Range("b2").Top .Height = oWK.Range("b2").Height .Width = oWK.Range("b2").Width End With End Sub
如果要用vba插入图形保持其原有的大小和长宽,需要注意把Shapes.AddPicture的Width, Height参数都设置为-1,那么就不会改变图片的原来大小了,如下所示:
Set oSP = oWK.Shapes.AddPicture("C:\Users\Ruibron\Pictures\头像.png", msoCTrue, msoCTrue, 1, 1, -1,-1)
发表评论