【VBA】列幅を自動調整する

この記事では
 ・指定した列の列幅を自動調整
 ・全ての列の列幅を自動調整
する方法を記載します!

PR

指定した列の列幅を自動調整する

ここでは例として、
 ・シート「sample」のB列の列幅
を自動調整します。

列幅を自動調整(実行前)
列幅を自動調整(実行前)
Sub sample()
    'B列の列幅を自動調整
    Worksheets("sample").Columns("B").AutoFit
End Sub

「Columns」に自動調整したい列を指定します。
※上記は「B列」を指定しています。
※「Columns(“B:F”)」のように複数の列の指定もできます。

「AutoFit」メソッドによって自動調整されます。

上記の処理は
 ・「Worksheets(“シート名”)」から「Worksheetオブジェクト」を取得して、
 ・「Worksheetオブジェクト」の「Columns」プロパティで「Rangeオブジェクト」を取得して、
 ・「Rangeオブジェクト」の「AutoFit」メソッドで自動調整する

という流れです。


上記を実行すると、B列の列幅のみが自動調整されます。

列幅を自動調整(実行後)
列幅を自動調整(実行後)
PR

全ての列の列幅を自動調整する

ここでは例として、
 ・シート「sample」の全ての列の列幅
を自動調整します。

列幅を自動調整(実行前)
列幅を自動調整(実行前)
Sub sample()
    '全ての列幅を自動調整
    Worksheets("sample").Cells.EntireColumn.AutoFit
End Sub

「Worksheets(“XXX”).Cells.EntireColumn」によって、そのシートの「全ての列」を指定できます。

上記の処理は
 ・「Worksheets(“シート名”)」から「Worksheetオブジェクト」を取得して、
 ・「Worksheetオブジェクト」の「Cells」プロパティで「Rangeオブジェクト」を取得して、
 ・「Rangeオブジェクト」の「EntireColumn」プロパティでさらに「Rangeオブジェクト」を取得して、
 ・「Rangeオブジェクト」の「AutoFit」メソッドで自動調整する

という流れです。


上記を実行すると、シート「sample」の全ての列の列幅が自動調整されます。

列幅を自動調整(実行後)
列幅を自動調整(実行後)
PR

参考

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「Worksheetsオブジェクト」
「Worksheetオブジェクト」のコレクションです。
「Worksheets(“シート名”)」により、シートの「Worksheetオブジェクト」を取得します。



●「Worksheetオブジェクト」の「Columns」プロパティ


●「Rangeオブジェクト」の「AutoFit」メソッド


●「Worksheetオブジェクト」の「Cells」プロパティ


●「Rangeオブジェクト」の「EntireColumn」プロパティ