Excelマクロで複数シートの列幅調整・セル整列・ピボットテーブル作成を自動化する方法

Visual Basic

Excelで複数のシートに対して列幅調整やセル整列、ピボットテーブル作成を自動化するマクロは、業務効率化に非常に役立ちます。ここでは具体的な手順とVBAコードの例を解説します。

マクロの基本構成

マクロの流れは以下の通りです:

  • 対象ファイルを選択
  • 指定シートの列幅・セル整列・ウインドウ枠・フィルター設定
  • ピボットテーブル作成と降順ソート

これを順番にVBAで処理することで、一連の作業を自動化できます。

シート「パターン1」「パターン2」の処理

対象シートで列幅変更やセル整列を行う例です。

Sub FormatPatternSheets()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Sheets(Array("パターン1", "パターン2"))
        ws.Unprotect
        ws.Columns("A:A,E:I,K:K").AutoFit
        ws.Columns("B:D").ColumnWidth = 10
        ws.Columns("M:N").ColumnWidth = 35
        ws.Columns("AC:AC").ColumnWidth = 15
        ws.Cells.HorizontalAlignment = xlCenter
        ws.Cells.VerticalAlignment = xlCenter
        ws.EnableOutlining = False
        ws.Rows(2).AutoFilter
    Next ws
End Sub

ピボットテーブル作成の自動化

シート「全体結果」のD列と「個別結果」のAD列にピボットテーブルを作成し、降順に並べる例です。

Sub CreatePivotTables()
    Dim wsAll As Worksheet, wsInd As Worksheet
    Dim pc As PivotCache, pt As PivotTable
    Set wsAll = ThisWorkbook.Sheets("全体結果")
    Set wsInd = ThisWorkbook.Sheets("個別結果")

    ' 全体結果シートのピボット
    Set pc = ThisWorkbook.PivotCaches.Create(xlDatabase, wsAll.Range("D2:D" & wsAll.Cells(wsAll.Rows.Count, "D").End(xlUp).Row))
    Set pt = pc.CreatePivotTable(wsAll.Cells(1, 10), "PivotAll")
    pt.PivotFields(1).Orientation = xlRowField
    pt.AddDataField pt.PivotFields(1), "件数", xlCount
    pt.PivotFields(1).AutoSort xlDescending, pt.PivotFields(1).Name

    ' 個別結果シートのピボット
    Set pc = ThisWorkbook.PivotCaches.Create(xlDatabase, wsInd.Range("AD2:AD" & wsInd.Cells(wsInd.Rows.Count, "AD").End(xlUp).Row))
    Set pt = pc.CreatePivotTable(wsInd.Cells(1, 31), "PivotInd")
    pt.PivotFields(1).Orientation = xlRowField
    pt.AddDataField pt.PivotFields(1), "件数", xlCount
    pt.PivotFields(1).AutoSort xlDescending, pt.PivotFields(1).Name
End Sub

マクロの活用ポイント

複数シートをまとめて処理することで、手作業の繰り返しを削減できます。列幅やセル整列を統一することで、見やすいシートに整えることができます。

ピボットテーブル作成も自動化することで、毎回のデータ更新時に手間を省けます。

まとめ

VBAマクロを活用することで、Excelでの列幅調整、セル整列、フィルター設定、ピボットテーブル作成を自動化できます。今回紹介したコード例を参考に、シートや列番号、ピボットテーブル範囲を実際のデータに合わせて調整することで、業務効率化を実現できます。

コメント

タイトルとURLをコピーしました