Excelのセルの幅を一括で自動調整するVBAのサンプルコード(VBAのAutoFitの使用例)

VBA
記事内に広告が含まれています。

Excelのセルの幅を一括で自動調整するVBAのサンプルコードを紹介します。

仕様

Excelを使っていると、以下のようなことがあります

  • 文字切れで文章が見えなくなる
  • 無駄にセルの幅が広くて見た目が悪い。

例えば以下のキャプチャはIDや年齢の幅が広すぎますし、名前の幅は狭すぎて何が書いてあるかわかりません。

今回のVBAのサンプルコードは、この幅を自動調整するサンプルコードです。

手動で直す場合

ちなみに手動で修正する場合は、以下の操作を実施します。

対象のセルの幅を広げます。

書式メニューから「列の幅の自動調整(I)」を選択します。※セルの境目でダブルクリックするともっと早いですね。

すると、以下のように幅が調整されます。

VBAもこれをプログラムにするだけですね。

ソースコード

ソースコードは以下のとおりです。

AutoFitを使用するのがポイントになります。

そして実行していることは基本的に手作業でしていたことを、自動化しただけであるというのもポイントです。

Option Explicit

Sub AutoFitColumns()

    '最右端の列番号の取得(表が2行目から始まっているため、2行で評価していることに注意)
    Dim maxFieldNumber As Long
    maxFieldNumber = Cells(2, Columns.Count).End(xlToLeft).Column
        
    '列番号からアルファベットを取得
    Dim maxFieldAlphabet As String
    maxFieldAlphabet = Split(Cells(1, maxFieldNumber).Address, "$")(1)
    
    '列の幅を大きめに確保する
    Columns("A:" & maxFieldAlphabet).ColumnWidth = 100

    '列幅を自動調整する
    Columns("A:" & maxFieldAlphabet).AutoFit
End Sub

実行

実行手順

Alt + F8でマクロの一覧から、先ほどのマクロ関数を選択して実行します。

実行結果

マクロの実行ボタンを押下すると、セルの幅が調整されます。

表の内容が読みやすくなっていますね。

参考情報

環境

下記の環境で作成・実行しております。

No.環境バージョン
1OSWindows11
2ExcelExcel2016
環境一覧

以上です。