【EXCEL VBA | AutoFitメソッド・ColumnWidthプロパティ】列の幅を調整する

スポンサーリンク

列の幅を調整する

データを作成したりしたあとに、見た目を調整するために列幅を設定したいときありますね(^o^)

今回は、VBAからセル幅を調整する方法を紹介します!

セルに列幅を調整するには以下のような方法があります。

AutoFItメソッド・・・セルの列の間でチクチクっとダブルクリックしたときのやつです

ColumnWidthプロパティ・・・右クリックで「列の幅」を設定する感じです

それでは一つずつ使い方を説明します。

AutoFItメソッド

まずは AutoFItメソッド です。

構文

指定列のオブジェクト.AutoFit

指定の列のオブジェクトに対してAutFitメソッドを実行します。

次の図のA列に対して、AutoFitメソッドを実行します。

コードは次のようになります。

Sub sample()

    'A列に対してAutoFitメソッドを実行する
    Columns("A:A").AutoFit
 
End Sub

では実行してみましょう。

A列の幅が、文字列に合わせて広がりました!

特定のセルをからAutoFitメソッドを実行したい場合は、RnageやCellsからEntireColumnプロパティで列全体を指定します。

Sub sample()

    'A1セルの列全体に対してAutoFitメソッドを実行する
    Range("A1").EntireColumn.AutoFit ’Rangeで指定
    Cells(1, 1).EntireColumn.AutoFit ’Cellsで指定
 
End Sub

もちろん、複数の列を同時に指定すれば指定した列全てにAutoFitメソッドが実行されます。

ColumnWidthプロパティ

次は ColumnWidthプロパティです。

構文

指定列のオブジェクト.ColumnWidth = 列の幅

指定の列のオブジェクトのColumnWidthプロパティを設定します。

列の幅は数値で指定しますが、 標準フォントの文字がセルに何文字表示出来るかという文字数になります。

右クリックで「列の幅」を手動で設定するときの数値ですね。

ColumnWidthプロパティは取得も出来ます。次の図のA列のColumnWidthプロパティを取得してメッセージボックスに表示してみましょう。

コードは次のようになります。

Sub sample()

    'A列のColumnWidthプロパティを取得する
    MsgBox Columns("A:A").ColumnWidth
     
End Sub

実行すると8.22となりました。

列のつなぎ目にマウスを合わせて出てくる数値と同じなことがわかります。

列幅を変更するには、このプロパティの数値を設定すればいいだけですね。

ではセルの幅を25に設定してみましょう。

Sub sample()

    'A列のColumnWidthプロパティを25に設定
    Columns("A:A").ColumnWidth = 25
     
End Sub

実行すると

セルの幅が25に変更されましたね!

例えば元のプロパティの数値を使って、列幅を半分にしたり、倍にしたりということも可能です。

Sub sample()

    'A列のColumnWidthプロパティを半分にする
    Columns("A:A").ColumnWidth = Columns("A:A").ColumnWidth / 2

    'A列のColumnWidthプロパティを倍にする
    Columns("A:A").ColumnWidth = Columns("A:A").ColumnWidth * 2
     
End Sub

元のColumnWidthプロパティを2で割ったり掛けたりしています。

実行してみましょう。

出来てますね(^o^)