ExcelVBA使⽤Shape对象的AddPicture⽅法制作图⽚产品⽬录如果需要制作如图1所⽰的产品⽬录,因为所需图⽚的尺⼨通常并⾮完全⼀致,所以除了插⼊图⽚,还需要调整图⽚的尺⼨以适应"图⽚"列单元格的⼤⼩。使⽤VBA可以快速完成这⼀系列繁杂的操作,⽰例代码如下。
Sub InsertPictures()
Dim lngRow As Long
Dim objShape As Shape
Dim objTargetCell As Range
With Sheet1
.Shapes.SelectAll'选中⼯作表中的所有Shape对象
Selection.Delete'删除选中的Shape对象
If .Cells(3, 1).Value <> "" Then
For lngRow = 3 To .Cells(3, 1).End(xlDown).Row
Set objTargetCell = .Cells(lngRow, 3)
.Shapes.AddPicture(ThisWorkbook.Path & "\" & _
.Cells(lngRow, 2) & ".jpg", True, True, _
objTargetCell.Left + 2, objTargetCell.Top + 2, _
objTargetCell.Width - 4, _
objTargetCell.Height - 4).Select
Selection.ShapeRange.LockAspectRatio = msoFalse'取消图⽚的纵横⽐,以适应单元格⼤⼩
Next lngRow
End If
End With
Set objTargetCell = Nothing
Set objShape = Nothing
End Sub
图1 图⽚产品⽬录
第9⾏代码使⽤Range对象的End属性获取⼯作表中A列最后⼀个⾮空单元格的⾏号作为循环的终值。
第11⾏代码中使⽤Shape对象的AddPicture⽅法插⼊花卉图⽚,图⽚⽂件以花卉名称作为⽂件名,扩展名为JPG,保存在⼯作簿所在⽬录中。代码中的ThisWorkbook.Path返回当前⼯作簿所在的⽬录名称。
AddPicture⽅法从现有⽂件创建图⽚并返回代表新图⽚的Shape对象,其语法格式如下。
AddPicture(Filename, LinkToFile, SaveWithDocument, Left, Top, Width, Height)对象图片高清
AddPicture⽅法的所有参数都是必需的。
名称必选/可
数据类型说明
Filename必选String要在其中创建 OLE 对象的⽂件的路径和⽂件名。
LinkToFile必选MsoTriState 要链接⾄的⽂件。代表图⽚对象与源⽂件之间的关系,使图⽚成为其源⽂件的独⽴副本则为msoFalse,建⽴图⽚与其源⽂件之间的链接则为msoTrue.
SaveWithDocument必选MsoTriState 将图⽚与⽂档⼀起保存。在⽂档中只存储链接信息则为msoFalse,将链接图⽚与该图⽚插⼊的⽂档⼀起保存则为msoTrue。如果参数LinkToFile为msoFalse,则该参数必须为msoTrue。
Left必选Single图⽚左上⾓相对于⽂档左上⾓的位置(以磅为单位)。Top必选Single图⽚左上⾓相对于⽂档顶部的位置(以磅为单位)。Width必选Single图⽚的宽度(以磅为单位)。
Height必选Single图⽚的⾼度(以磅为单位)。
:VBA168
淘宝店铺地址:
关注,每天及时接收Excel VBA经典⽰例讲解。
淘宝店铺提供Excel定制服务。
祝你⼯作和学习更轻松!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。