Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » SmartArtを図形に変換するExcelマクロ

動作検証バージョン: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

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マクロ

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.