
Excel VBAのAutoFitは、セルに入力された文字や数値の内容が見切れないように、自動で列の幅を最適化するために使います。使い方や注意点など、サンプルコードをもとに具体的に解説します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
Excel VBA AutoFitで列幅を最適化|シーン
以下のシーンで利用します。
・データ入力後
長めの文字列を含む表を作成したときに、見やすく整える
・マクロでレポート出力後
自動生成されたシートで文字が切れているのを防ぐ
・見栄えの調整
印刷や画面表示での可読性アップ
Excel VBA AutoFitで列幅を最適化|サンプルコード
「A列からD列までの列幅を自動で調整」する
Option Explicit
Sub AdjustColumnWidth()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' 対象シート名に変更可
ws.Range("A:D").Columns.AutoFit
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
シート全体の列を一括で調整
Option Explicit Sub AdjustAllColumns() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") ws.Cells.EntireColumn.AutoFit End Sub
・Columns.AutoFit
列幅を自動で調整
・Range("A:D")
A列~D列を対象に指定
・ws.Cells.EntireColumn
ワークシート全体の列
・結合セルには効かない
結合されているセルの列幅は自動調整されないので注意
・表示形式により幅が変わることも
「通貨」や「日付」形式で長く表示されることがある
・シート名の指定ミスに注意
存在しないシート名を指定するとエラーになります
ユーザーフォームで実行(CommandButton1のクリック時に自動調整)
Option Explicit
Private Sub CommandButton1_Click()
ThisWorkbook.Sheets("Sheet1").Cells.EntireColumn.AutoFit
MsgBox "列幅を自動調整しました"
End Sub
Excel VBA AutoFitで列幅を最適化|まとめ
・列幅の自動調整には .AutoFit を使う
・Range や Cells と組み合わせて対象を選べる
・見た目を整える仕上げ処理としてとても便利
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。