ExcelVBA セル値の内容が見切れないように自動で列幅を最適化する方法

 

Excel VBAのAutoFitは、セルに入力された文字や数値の内容が見切れないように、自動で列の幅を最適化するために使います。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

 

Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る

 

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

シート全体の列を一括で調整

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 と組み合わせて対象を選べる

・見た目を整える仕上げ処理としてとても便利

 

VBAマクロが書けるベースを作りたい方は、VBAエキスパート資格取得を挑戦してみてください。

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

下記から無料問題集ができます。

 

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。