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. | 環境 | バージョン |
---|---|---|
1 | OS | Windows11 |
2 | Excel | Excel2016 |
以上です。