列の幅を調整する
データを作成したりしたあとに、見た目を調整するために列幅を設定したいときありますね(^o^)
今回は、VBAからセル幅を調整する方法を紹介します!
セルに列幅を調整するには以下のような方法があります。
AutoFItメソッド・・・セルの列の間でチクチクっとダブルクリックしたときのやつです
ColumnWidthプロパティ・・・右クリックで「列の幅」を設定する感じです
それでは一つずつ使い方を説明します。
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プロパティは取得も出来ます。次の図の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^)
コメント