すでに書式を設定してあるShapeから書式を他のShapeにコピーするには
PickUpメソッドとApplyメソッドを組み合わせて行います。
サンプルではShapeを2つ追加し、1つ目の書式設定を行った後、同じ
書式を2個目のShapeに適用します。
Private Sub CommandButton1_Click()
Dim MyShape1 As Shape, MyShape2 As Shape
With ActiveSheet
'四角形のShapeを追加
Set MyShape1 = .Shapes.AddShape _
(msoShapeRectangle, 100, 100, 100, 30)
'Shapeの書式設定
With .Shapes.Range(MyShape1.Name) '※
.Fill.ForeColor.RGB = vbRed
.PickUp '書式のコピー
End With
'丸型のShapeを追加
Set MyShape2 = .Shapes.AddShape _
(msoShapeOval, 200, 200, 50, 50)
'コピーした書式を適用
MyShape2.Apply
End With
End Sub
※(注)一括で書式設定を行うこともできます。
Shapes.Range(MyShape1.Name,MyShape2.Name).Fill〜
|