打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
学习VBA,报表做到飞 第六章 Shapes对象 6.5 AddShape方法
userphoto

2023.04.26 云南

关注

6.5 AddShape方法

Shapes.AddShape方法可以在指定的位置插入图形。我们先看一下它的语法结构:

AddPicture(Type、Left、Top、Width、Height)

用文字代替各参数就是:

AddPicture(类型、左、顶、宽、高)

AddShape方法的使用与AddPicture方法类似,其中类型表示要增加什么样的图形。

继续使用上一节的案例,在插入图片前,先在单元格里插入一个心形的图形,然后在图形里再填充图片。本次我们不再用FileDialog属性来选择文件夹,而是直接把图片存放位置赋值给“地址”变量。

Sub 插入图形()

For Each ss In Range('a1', Cells(Rows.Count, 1).End(xlUp))

地址 = 'F:\VBA学习\Nature\' & ss.Value & '.jpg'

左 = ss.Offset(0, 1).Left

顶 = ss.Offset(0, 1).Top

宽 = ss.Offset(0, 1).Width

高 = ss.Offset(0, 1).Height


ActiveSheet.Shapes.AddShape(msoShapeHeart, 左, 顶, 宽, 高).Select


Selection.ShapeRange.Fill.UserPicture 地址

Next

End Sub

先用AddShape方法插入一个msoShapeHeart心形图形,然后再图形里填充指定位置的图片。

程序运行后效果如下:

要插入什么样的图形的参数可以通过录制宏的方式获得。比如我们通过录制新宏的方式插入以下图形:

通过查看代码就可以看到每个图形所对应的参数。

Sub Macro1()

ActiveSheet.Shapes.AddShape Type:=msoShapeSun, Left:=226.5, Top:=65.25, Width:=158.25, Height:=111.75

.Select

ActiveSheet.Shapes.AddShape Type:=msoShapeCloud, Left:=245.25, Top:=219, Width:=122.25, Height:=120

ActiveSheet.Shapes('云形 4').Select

ActiveSheet.Shapes.AddShape Type:=msoShapeLeftUpArrow, Left:=465.75, Top:=75, Width:=108, Height:=94.5

ActiveSheet.Shapes('直角双向箭头 5').Select

ActiveSheet.Shapes.AddShape Type:=msoShapeCan, Left:=461.25, Top:=224.25, Width:=96.75, Height:=108.75

ActiveSheet.Shapes('圆柱形 6').Select

End Sub

在图形中填充图片用到了Shapes对象的ShapeRange.Fill属性,它返回一个FillFormat对象,该对象包含指定图形的填充格式属性。本案例我们用图片来填充,所以代码为
ShapeRange.Fill.UserPicture。我们还可以在图形中填充其它内容,比如设置图形填充的前景色ShapeRange.Fill.ForeColor、背景色ShapeRange.Fill.BackColor、渐变
ShapeRange.Fill.TwoColorGradientmsoGradientHorizontal等,各位可以自己写代码试一下。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA代码非常诱人,学习有用的知识是自己的事情
Excel之VBA常用功能应用篇:自动制作公司印章
线表计划高级阶段-随心所欲画图形
文档中图形及子图形的处理
Excel Excel之VBA编程常用语句300句
excel VBA添加图形对象,使用AddShape方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服