- ベストアンサー
図のグループ化をマクロに組み込むには
お世話になります。 Excel2007を使っています。 QNo.4467047の続きです。 A1~B4の8つのセルに図が複数(1~3)入っています。 一つのセル内の図、複数のセル内の図をグループ化、グループ解除をマクロでしたいのですが、マクロの記録からでは生成してくれません よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
TopLeftCellを調べてグループ化します。 こんな感じになります。 Sub test図形グループ化() Dim shp As shape Dim sg() As Variant Dim i As Integer For Each shp In ActiveSheet.Shapes If shp.TopLeftCell.Address = "$A$1" Then ReDim Preserve sg(i) As Variant sg(i) = shp.Name i = i + 1 End If Next shp ActiveSheet.Shapes.Range(sg).Group End Sub 写真かどうかは、Typeプロパティで取得できます。 If shp.Type = msoPicture Then '処理 End If
その他の回答 (2)
- xls88
- ベストアンサー率56% (669/1189)
QNo.4467047 mt2008さん回答のコードを使わせていただくと グループ化 ActiveSheet.Shapes.Range(Array("Picture 1", "Picture 2", "Picture 3", "Picture 4")).Group グループ化解除 (Shapes(1)が、グループ化されていないとエラーになります。) ActiveSheet.Shapes(1).Ungroup
補足
再度のご回答ありがとうございます。 今一度宜しくお願いします。 ピクチャー名が任意(セル内全て)の対処法はありますか
- xls88
- ベストアンサー率56% (669/1189)
グループ化は Group 解除は UnGroup です。
補足
ご回答ありがとうございます。 任意の図を名前を付けてグループ化するには具体的にどのように記述しますか? 「組.Group = ShapeRange("a1:a4")」ではダメですね この仕組みは、A1~D2の8つのセルに写真、テキストボックス、ワードアート、図形、クリップアートを配置し B1,C1の下辺を切り、A列、C列の右辺を谷折り、B列の右辺とA1、D1の下辺を山折りにして8ページの小冊子にしたいのです。 料理レシピ、旅行計画等に利用出来ると考えています。 ページそろえのため図を配置後 位置変更、回転が必要です。 この部分をマクロ化したいのです。
お礼
度重なる質問にお付き合い頂き感謝します。 これで解決しそうなので締め切らせていただきます。 最後の4行は今回必要ないのですが、今後利用させていただくことがありそうです。 大変参考になりました 本当に有難うございました。