Excelでブック内の結合セルの情報をリスト化するマクロを作成する方法
Excelでは、セルを結合することで、見栄えを整えたり、データの構造を明確にすることができます。しかし、結合セルを多用すると、後でデータの整理や分析が難しくなることがあります。そこで今回は、Excelのブック内にある結合セルの情報をまとめてリスト化するVBAマクロの作成方法をご紹介します。
マクロのコード
Sub ListMergedCells()
Dim ws As Worksheet
Dim newWs As Worksheet
Dim cell As Range
Dim i As Long
' 新しいワークシートを追加
Set newWs = ThisWorkbook.Worksheets.Add
' ユニークなワークシート名を設定
newWs.Name = UniqueWorksheetName("MergedCellsList")
' ヘッダーを設定
newWs.Cells(1, 1).Value = "ワークシート"
newWs.Cells(1, 2).Value = "結合セル位置"
newWs.Cells(1, 3).Value = "縦サイズ"
newWs.Cells(1, 4).Value = "横サイズ"
newWs.Cells(1, 5).Value = "データ"
i = 2
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> newWs.Name Then
For Each cell In ws.UsedRange.Cells
If cell.MergeCells And cell.Address = cell.MergeArea.Cells(1, 1).Address Then
newWs.Cells(i, 1).Value = ws.Name
newWs.Cells(i, 2).Value = cell.MergeArea.Address
newWs.Cells(i, 3).Value = cell.MergeArea.Rows.Count
newWs.Cells(i, 4).Value = cell.MergeArea.Columns.Count
newWs.Cells(i, 5).Value = cell.MergeArea.Cells(1, 1).Value
i = i + 1
End If
Next cell
End If
Next ws
' 列幅を自動調整
newWs.Columns("A:E").AutoFit
End Sub
Function UniqueWorksheetName(ByVal baseName As String) As String
Dim ws As Worksheet
Dim wsName As String
Dim counter As Integer
Dim isUnique As Boolean
wsName = baseName
isUnique = False
counter = 1
Do While Not isUnique
isUnique = True
For Each ws In ThisWorkbook.Worksheets
If ws.Name = wsName Then
isUnique = False
wsName = baseName & " (" & counter & ")"
counter = counter + 1
Exit For
End If
Next ws
Loop
UniqueWorksheetName = wsName
End Function
マクロの使い方
まず、ExcelのVBAエディターに上記のコードをコピーして貼り付けます。エディターを開くには、ExcelでAlt + F11
キーを押します。次に、挿入
メニューから標準モジュール
を選択し、新しいモジュールを作成します。そこにコードを貼り付けてください。
コードを貼り付けたら、マクロを実行してみましょう。エクセル上でAlt + F8
キーを押してマクロのダイアログボックスを開き、「ListMergedCells」を選択し、「実行」ボタンをクリックします。すると、新しいワークシートが作成され、結合セルの情報がリスト化されます。
サンプル
以下は、マクロを実行した後の「MergedCellsList」ワークシートのサンプルです。
ワークシート | 結合セル位置 | 縦サイズ | 横サイズ | データ |
---|---|---|---|---|
Sheet1 | $A$1:$C$2 | 2 | 3 | サンプルデータ1 |
Sheet1 | $E$4:$F$6 | 3 | 2 | サンプルデータ2 |
Sheet2 | $B$3:$D$4 | 2 | 3 | サンプルデータ3 |
このマクロを使って、ブック内の結合セルの情報を一覧で確認できます。ただし、拡大倍率の上限は400%までとなっているため、それ以上の拡大はできませんのでご注意ください。
それでは、ぜひこのマクロを活用し、結合セルの管理を効率化してみてください。
コメント