この記事では、VBAマクロでグループ化を解除する方法(一括、シートすべて、列、行、図形、全体など)【Ungroup, Unmerge】について解説していきます。
ポイントとしては
`Ungroup`や
`Unmerge`メソッド
を使用することです。
なお、下記の解説では完全な初心者でもわかりやすいように、変数名を少々変わった名称にしています。
実際に使う際には、これらをより適切な英語表記に変更してください。
それでは詳しく見ていきましょう!
VBAマクロでグループ化を解除(一括、シート内のすべて、全体)する方法
それではまず、一括でシート内のすべてのグループ化を解除する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub GurupuKaikaiZenbu()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Cells.Ungroup
Next ws
End Sub
コードのAlt+F8を押し、マクロ選択画面で`GurupuKaikaiZenbu`関数を実行します。
このコードでは、ワークブック内の全てのシートに対して、セルのグループ化を解除します。
`ws`という変数を使用して、ワークブック内の各シートにアクセスし、`Ungroup`メソッドでグループ化を解除しています。
グループ化の一括解除はかなりシンプルなコードでいけますね。
VBAマクロでグループ化を解除(特定の列範囲や行範囲を指定)する方法
続いては、特定の列範囲や行範囲に限定してグループ化を解除する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub GurupuKaikaiKubun()
Dim hani As Range
Set hani = ThisWorkbook.Sheets("Sheet1").Range("A1:B10")
hani.Ungroup
End Sub
コードのAlt+F8を押し、マクロ選択画面で`GurupuKaikaiKubun`関数を実行します。
このコードでは、「Sheet1」のA1からB10までの範囲を指定し、その範囲内のグループ化を解除します。
`hani`という変数に範囲を設定し、`Ungroup`メソッドを使用しています。
列方向だけ、行方向だけなどの指定は適宜ご変更くださいませ。
VBAマクロでグループ化を解除(図形:シート内のすべての画像やオートシェイプ)する方法
最後に、シート内のすべての画像やオートシェイプ(図形)のグループ化を解除する方法について説明します。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub GurupuKaikaiZukei()
Dim shp As Shape
For Each shp In ThisWorkbook.Sheets("Sheet1").Shapes
If shp.Type = msoGroup Then
shp.Ungroup
End If
Next shp
End Sub
コードのAlt+F8を押し、マクロ選択画面で`GurupuKaikaiZukei`関数を実行します。
このコードでは、特定のシート(ここでは「Sheet1」)内の全ての図形(Shapes)に対して、グループ化されているものを対象に`Ungroup`メソッドを適用します。
グループ化された図形のみを対象にするため、`If shp.Type = msoGroup Then`という条件を使用しています。
対象が図形であってもマクロを使えば、グループ化の解除はかなり簡単です。
まとめ VBAマクロでグループ化を解除(列、行、図形、全体など)【Ungroup, Unmerge】
この記事では、VBAマクロでグループ化を解除(一括、シートすべて、列、行、図形、全体など)する方法【Ungroup, Unmerge】について確認しました。
マクロをマスターし、さらに快適に過ごしていきましょう!!!(^^)/