グループ化された図形(オートシェイプ)のグループ解除を行う、Excelマクロと、PowerPointマクロをご紹介しています。
もちろん、Wordでも同じニーズはあります。
何階層にも及ぶグループ化が行われていると、何度もグループ解除コマンドを実行するのが面倒なのは、どのアプリケーションでも同じです。
このサイト・インストラクターのネタ帳のアクセスログを眺めていても、
「word vba グループ化解除」
「word 2010 マクロ 図形グループ化 解除」
といった検索キーワードが見受けられます。
図形のグループ解除を行うサンプルマクロ
以下のようなマクロで、Word文書ファイルの、アクティブなページの、グループ化された図形のグループ解除を行うことができます。
Dim has_grp As Boolean ' グループ化された図形の存在を示すフラグ
Dim shp As Shape has_grp = True
Do While has_grp
For Each shp _
In ActiveDocument.Bookmarks("\Page").Range.ShapeRange
If shp.Type = msoGroup Then
has_grp = True
shp.Ungroup
Exit For
Else
has_grp = False
End If
Next shp
Loop
End Sub
Wordの場合はPowerPointの場合と同じ
構造はPowerPointのグループ解除マクロと同じです。
グループ化されていた図形のグループ解除を行ったあとに、
If shp.Type = msoGroup Then
has_grp = True
shp.Ungroup
Exit For
Else
と、一旦For~Nextループを抜けています。
ここをExcel版のように、
If shp.Type = msoGroup Then
has_grp = True
shp.Ungroup
Else
のようにした場合、グループ解除されない図形が残るケースが発生してしまいます。
- Newer:配列のバブルソートを理解するためのExcelマクロ
- Older:コネクタを削除するPowerPointマクロ
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » 図形・オ-トシェイプのグループ化解除を行うWordマクロ