|
グループ化された各図形の色を変えてみます。
まず、丸だの四角だの適当な図形を7つ作って、それらをグループ化します。
グループ化した図形オブジェクト名が「グループ 8」だとして。
'黄色、赤、青、黄緑、水色、ピンク、紫
'13、10、12、11、15、14、20
Sub グループ図形内の各図形の色を変える()
Dim Sp As Shape, iro As Variant
iro = Array(13, 10, 12, 11, 15, 14, 20)
With ActiveSheet.Shapes("グループ 8")
Range("A1").Value = .Name
Range("B1").Value = "グループ内図形 " & .GroupItems.Count & " 個"
i = 1
For Each Sp In .GroupItems '←グループ化されてないとエラーになります。
With Sp
i = i + 1
Cells(i, 1).Value = .Name
.Fill.ForeColor.SchemeColor = iro(i - 2)
.Fill.Visible = msoTrue
.Fill.Solid
End With
Next
End With
iro = Empty
End Sub
Sub 色を消してみる()
Dim Sp As Shape
For Each Sp In ActiveSheet.Shapes("グループ 8").GroupItems
Sp.Fill.Visible = msoFalse
Next
End Sub
上↑は、下↓みたいに一括で十分なんですけど...。
Sub 色消し一括()
ActiveSheet.Shapes("グループ 8").Fill.Visible = msoFalse
End Sub
で、各オブジェクトがグループ化されているかどうかです。
Sub グループ化されているか()
Dim Sp As Shape
For Each Sp In ActiveSheet.DrawingObjects.ShapeRange
If Sp.Type = msoGroup Then
MsgBox Sp.Name & " が、グループ化"
Else
MsgBox Sp.Name & " は、単独図形"
End If
Next
End Sub
|
|