目安箱 IV

目安箱投稿のルールはこちらをごらんください。
ご意見は電子メールで承っています。
「目安箱」は質問禁止です。技術的な質問はそれぞれの質問箱へどうぞ。

迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
63 / 118 ツリー ←次へ | 前へ→

【183】グループ化された図形について Jaka 07/1/16(火) 13:03 Excel[未読]

【183】グループ化された図形について
Excel  Jaka  - 07/1/16(火) 13:03 -

引用なし
パスワード
   グループ化された各図形の色を変えてみます。
まず、丸だの四角だの適当な図形を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

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
63 / 118 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:   
0
(SS)C-BOARD v3.8 is Free