利用对象的克隆方法,实现形状对象的快速复制和阵列效果。本例子演示了基于当前选中矩形实现的水平阵列效果。
参考代码如下:
'=============================================================
' 方法:快速复制克隆形状(水平阵列演示)
' 作用:利用对象的克隆方法,实现形状对象的快速复制和阵列效果
'=============================================================
Sub fastCloneShape()
' 判断当前是否选择了形状
Dim sh As Shape
Set sh = ActiveShape
If sh Is Nothing Then
MsgBox "请先选中一个形状"
Exit Sub
End If
' 将当前选择的形状,克隆5个一模一样的
Dim i As Integer
For i = 1 To 5
Dim s As Shape
Set s = sh.Clone
' 设置克隆对象的位置(基于被克隆的 sh 形状来做向右水平偏移)
' 可以绘制一个矩形,然后运行此代码观察效果
' 结果:被复制的5个矩形,仅仅挨着第一个被克隆的矩形,水平排成一排
' 如果删除“母体”,也就是被克隆的对象,则其他5个矩形会被一并删除
s.SetPosition sh.LeftX + sh.SizeWidth * i, sh.TopY
Next i
End Sub
参考代码如下:
'=============================================================
' 方法:快速复制克隆形状(水平阵列演示)
' 作用:利用对象的克隆方法,实现形状对象的快速复制和阵列效果
'=============================================================
Sub fastCloneShape()
' 判断当前是否选择了形状
Dim sh As Shape
Set sh = ActiveShape
If sh Is Nothing Then
MsgBox "请先选中一个形状"
Exit Sub
End If
' 将当前选择的形状,克隆5个一模一样的
Dim i As Integer
For i = 1 To 5
Dim s As Shape
Set s = sh.Clone
' 设置克隆对象的位置(基于被克隆的 sh 形状来做向右水平偏移)
' 可以绘制一个矩形,然后运行此代码观察效果
' 结果:被复制的5个矩形,仅仅挨着第一个被克隆的矩形,水平排成一排
' 如果删除“母体”,也就是被克隆的对象,则其他5个矩形会被一并删除
s.SetPosition sh.LeftX + sh.SizeWidth * i, sh.TopY
Next i
End Sub