動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2205 ビルド15225.20204 Microsoft Store)
「smartart 図形 変換 マクロ」
という検索キーワードでアクセスがありました。
SmartArtを図形に変換するサンプルマクロ
SmartArtの存在するシートがアクティブな状態で、以下のExcelマクロを実行すると、アクティブシート上のSmartArtがすべて図形に変換され、グループ解除も行われます。
Sub SmartArtを図形に変換する()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.HasSmartArt Then
shp.Select
Application.CommandBars.ExecuteMso _
"SmartArtConvertToShapes"
Selection.ShapeRange.Ungroup
End If
Next
End Sub
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.HasSmartArt Then
shp.Select
Application.CommandBars.ExecuteMso _
"SmartArtConvertToShapes"
Selection.ShapeRange.Ungroup
End If
Next
End Sub
SmartArtを図形に変換するサンプルマクロで行っている処理
SmartArtも、VBAから見た場合はShapeオブジェクトです。
アクティブシート上の全Shapeに対してFor Each~Nextループを回して、
Dim shp As Shape For Each shp In ActiveSheet.Shapes
Shape.HasSmartArtプロパティを使ってチェックして
SmartArtだったときに、
If shp.HasSmartArt Then
Shape.Selectメソッドで選択しておいてから、
shp.Select
Office.CommandBars.ExecuteMsoメソッドで、
[図形に変換]コマンドを実行しています。
Application.CommandBars.ExecuteMso _ "SmartArtConvertToShapes"
最後に拙著『理解するExcel VBA/図形操作の基本』の「7-3. ShapeRangeの特徴的なメソッド」でも解説しているShapeRange.Ungrupメソッドで、
グループ解除を行っています。
Selection.ShapeRange.Ungroup
[スポンサードリンク]
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » SmartArtを図形に変換するExcelマクロ