VBA实用小程序50: 在指定的单元格中插入指定的形状

论坛 期权论坛 期权     
完美Excel   2019-6-9 21:27   3267   0
学习Excel技术,关注微信公众号:
excelperfect

下面的自定义函数使用Shapes集合对象的AddShape方法及其参数,可以在指定的单元格中插入指定的形状。
Function AddShapeToRange( _
    ShapeType As MsoAutoShapeType, _
    sAddress As String) As Shape
    With ActiveSheet.Range(sAddress)
        Set AddShapeToRange = _
            ActiveSheet.Shapes.AddShape( _
            ShapeType, _
            .Left, .Top, .Width, .Height)
    End With
End Function

代码中的参数ShapeType指定形状的类型,可以是1至137、139至183之间的任意数字,这些数字代表不同的形状。当然,也可以使用内置常量名,例如msoShapeRectangle代表矩形。

参数sAddress指定要添加形状的单元格,字符串形式,例如要在单元格B3中添加形状,则指定参数sAddress的值为B3。

示例
如下图1所示的工作表,列A中是代表形状的常量名,列B中是对应的常量值。


图1

下面的代码在列C中添加对应的形状:
Sub AddShape()
    Dim shp As Shape
    Dim rng As Range
   
    For Each rng In Range("B2:B184")
        Set shp = AddShapeToRange(rng.Value,"C" & rng.Row)
    Next rng
End Sub

欢迎分享本文,转载请注明出处。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:195
帖子:39
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP