Excel VBAで複数シートの列幅を一括調整する方法

Excelを日常的に使用する多くの方々は、データの視認性やプレゼンテーションのために列の幅を調整することがよくあります。特に大量のデータを扱う場合や、複数のシートでの作業が必要な場合、一括で列幅を調整できると非常に便利です。この記事では、Excel VBAを使用して複数のシートの列幅を一括調整する方法について詳しく解説します。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本のコード: 複数シートの列幅を一括調整する

Excel VBAを使用して、複数のシートに対して列幅を一括で調整する基本のコードは以下の通りです。

Sub AdjustColumnWidth()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Columns("A:Z").AutoFit
    Next ws
End Sub

このコードは、ワークブック内の全てのワークシートでAからZ列までの列幅を自動調整します。`AutoFit`メソッドを使用して列幅を調整します。

コードの詳細解説

1. `Dim ws As Worksheet`: Worksheetオブジェクトとしてのwsを宣言します。
2. `For Each ws In ThisWorkbook.Worksheets`: 現在のワークブックにあるすべてのワークシートに対して繰り返し処理を行います。
3. `ws.Columns(“A:Z”).AutoFit`: wsで参照されるシートのA列からZ列までの列幅を自動調整します。
4. `Next ws`: 次のワークシートへの処理を継続します。

応用例1: 特定のシートだけ列幅を調整する

特定のシート名を指定して、そのシートだけ列幅を調整したい場合のコード例です。

Sub AdjustSpecificSheetsColumnWidth()
    Dim ws As Worksheet
    Dim targetSheets As Variant
    targetSheets = Array("Sheet1", "Sheet3")

    For Each ws In ThisWorkbook.Worksheets
        If IsInArray(ws.Name, targetSheets) Then
            ws.Columns("A:Z").AutoFit
        End If
    Next ws
End Sub

Function IsInArray(valToBeFound As Variant, arr As Variant) As Boolean
    IsInArray = (UBound(Filter(arr, valToBeFound)) > -1)
End Function

応用例2: 列幅を指定したピクセル値に設定する

AutoFitではなく、特定のピクセル値で列幅を設定する方法です。

Sub SetColumnWidthPixel()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Columns("A:Z").ColumnWidth = 20
    Next ws
End Sub

応用例3: 特定の列だけ列幅を調整する

特定の列、例えばA列とC列だけ列幅を調整する方法です。

Sub AdjustSpecificColumnsWidth()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Range("A:A, C:C").AutoFit
    Next ws
End Sub

まとめ

Excel VBAを利用すると、複数のシートの列幅を効率的に一括調整することが可能です。上述のコードを参考に、独自のニーズに合わせてカスタマイズしてみてください。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次