【Excel VBA】列の幅を調整する(ColumnWidth/UseStandardWidth/AutoFit)

りゅう

こんにちは!りゅう(@ryupong_b)です。
今回は、列幅を調整する方法を解説します。

はじめに

今回は、列の幅を調整する方法をご紹介します。
主に、処理の終わりの仕上げとして列の幅の調整を行い、資料の可読性を向上させるために使用します。
本記事では、幅調整の手段を複数パターンに分け、サンプルコードを用いてご紹介します。
是非最後まで、お付き合いください。

この記事を読むメリット
  • 列の幅を調整する3つの方法が分かります。
  • 基本的な構文から、エラーの回避手段まで分かりやすく解説します。
  • サンプルコードを用いて、一部の列の幅の調整から全列の幅の調整まで、様々なパターンの調整方法を紹介します。

前提

列の幅を調整するには、以下3つの手段があります。
使用用途ごとに使い分けを行いましょう。

#メソッド/プロパティ使用用途
1ColumnWidth列の幅を指定の幅に調整する
2UseStandardWidth列の幅を標準の幅に調整する
3AutoFit列の幅を自動調整する
列の幅調整 – メソッド及びプロパティ

基本情報

ColumnWidthプロパティ

ColumnWidthプロパティは、変更したい列の幅をポイント単位で指定して調整することが出来ます。
以下の例では、1列目(A1セルを起点とする幅)を40ポイントの幅に変更しています。

構文

‘ 列の幅調整(40ポイント指定)
Range(“A1”).ColumnWidth = 40

ポイントとは?
列の幅を表す単位です。
Excelの画面上では、以下の赤枠にて確認できます。
※列と列の間の境界線をクリックすると表示されます。

UseStandardWidthプロパティ

UseStandardWidthプロパティは、標準の列の幅に調節します。
以下の例では、1列目(A1セルを起点とする列)を標準の幅に変更しています。

構文

Range(“A1”).UseStandardWidth= True

AutoFitメソッド

AutoFitメソッドは、セルに表示されている文字列に合わせて自動で列の幅を調整します。
以下の例では、2列目に合わせて列の幅を自動調整します。

構文

Range(“B:B”).AutoFit = True

AutoFitメソッドは、列全体を指定しないとエラーとなります。
Columnsプロパティなどの列を参照するオブジェクトを指定してください。

サンプルコード

個別の列を指定の幅に変更する

サンプルコード
Public Sub setColumnWidth()

    ' A1セルの列(1列目)の幅を 10ポイントに調整する
    Range("A1").ColumnWidth = 10

    ' B2 ~ C9セルの列(2 ~ 3列目)の幅を 30ポイントに調整する
    Range("B2:C9").ColumnWidth = 30

    ' 5列目の列の幅を 40ポイントに調整する
    Columns("E:E").ColumnWidth = 40
End Sub

シート内のすべての列の幅を指定の幅に変更する

サンプルコード
Public Sub setAllColumnWidth()

    ' 1シート目の全ての列の幅を 20ポイントに調整する
    ThisWorkbook.Worksheets(1).Columns.ColumnWidth = 20
End Sub

シート内のすべての列の幅を標準の幅に変更する

サンプルコード
Public Sub resetAllColumnWidth()

    ' 1シート目の全ての列を標準の幅に調整する
    ThisWorkbook.Worksheets(1).Columns.UseStandardWidth = True
End Sub

シート内のすべての列の幅を自動調整する

サンプルコード
Public Sub setAllColumnWidthAutoFit()

    ' 1シート目の全ての列の幅を自動調整する
    ThisWorkbook.Worksheets(1).Columns.AutoFit
End Sub

最後に

今回は、3種類の列の幅の調整方法をご紹介させて頂きました。
この記事が、皆さんのお力になれば幸いです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA