Excel

【Excel】VBAマクロでグループ化を解除(一括、シートすべて、列、行、図形、全体など)する方法【Ungroup, Unmerge】

当サイトでは記事内に広告を含みます

この記事では、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】について確認しました。

マクロをマスターし、さらに快適に過ごしていきましょう!!!(^^)/