サイトについて      連絡先   検索

VBA 列の幅を調整する

はじめに

Excel VBA の列の幅を調整する方法を紹介します。

Columns.ColumnWidth プロパティか Range.ColumnWidth プロパティから列の幅を調整できます。

Columns.AutoFit メソッドで列の幅を自動調整できます。

列の幅を取得する

Columns の引数に列番号を指定すると、その列の幅を取得できます。

列「B」の幅を取得するには Columns(2).ColumnWidth または Columns("B").ColumnWidth のように指定します。

Dim d As Double
d = Columns(2).ColumnWidth
Debug.Print(d)

Range.EntireColumn を使用すると、指定したセルの列を取得できます。

セル「A1」の列を幅するには Range("A1").EntireColumn.ColumnWidth のように指定します。

Dim d As Double
d = Range("A1").EntireColumn.ColumnWidth
Debug.Print(d)

列の幅を設定する

列「B」に幅を設定するには Columns(2).ColumnWidth = 20 のように指定します。

Columns(2).ColumnWidth = 20
Columns("B").ColumnWidth = 20
1

セル「A1」の列に幅を設定するには Range("A1").EntireColumn.ColumnWidth = 20 のように指定します。

Range("A1").EntireColumn.ColumnWidth = 20

複数列の幅を取得する

列の範囲「B ~ C」の幅を取得するには Range("B:C").ColumnWidth または Range(Columns(2), Columns(3)).ColumnWidth のように指定します。

複数の列の幅が全て同じであればその幅を取得し、一つでも違う幅があれば Null を取得します。

Dim d As Double
d = Range("B:C").ColumnWidth                  ' 列「B ~ C」の幅を取得
d = Range(Columns(2), Columns(3)).ColumnWidth ' 列「B ~ C」の幅を取得
d = Range("D:D").ColumnWidth                  ' 列「D」の幅を取得
Debug.Print(d)

複数列の幅を設定する

列の範囲「B ~ C」に幅を設定するには Range("B:C").ColumnWidth = 20 のように指定します。

各列の幅が指定した幅になります。

Range("B:C").ColumnWidth = 20
Range(Columns(2), Columns(3)).ColumnWidth = 20
2

列の幅を自動設定する

列の幅をセルの内容に合わせて自動調整するには Columns.AutoFit メソッドを使用します。

列「B」の幅を自動設定するには Columns(2).AutoFit のように指定します。

Columns(2).AutoFit             ' 列「B」の幅を自動調整
Range("B:C").Columns.AutoFit   ' 列「B ~ C」の幅を自動調整
Range("B1:C3").Columns.AutoFit ' 列「B ~ C」の幅をセル「B1 ~ C3」に合わせて自動調整
3

Range で複数のセルを指定したときは、そのセルの範囲に合わせて自動調整します。

指定したシートの列を幅する

Columns.ColumnWidth とコードに書くと、アクティブなシートの列を幅します。これは ActiveSheet.Columns.ColumnWidth の ActiveSheet が省略されています。

' どちらも同じコード
Columns(1).ColumnWidth = 20
ActiveSheet.Columns(1).ColumnWidth = 20

シートを指定するには Sheets の引数にシート名またはインデックスを指定します。

1

Sheet1 のシートを指定するには、Sheets("Sheet1") か Sheets(1) と書きます。

' Sheet1 の列「A」に幅を設定
Sheets("Sheet1").Columns(1).ColumnWidth = 20
Sheets(1).Columns(1).ColumnWidth = 20

' Sheet2 の列「A」に幅を設定
Sheets("Sheet2").Columns(1).ColumnWidth = 20
Sheets(2).Columns(1).ColumnWidth = 20

関連ページ