セルの高さや幅を自動調整する
結合していない単一セルの行の高さや列の幅を自動調整するには、AutoFitメソッドを利用します。
AutoFitメソッドは単一セルにのみ利用できるメソッドで、結合セルの自動調整は出来ません。
結合セルの高さや幅の自動調整を行う場合は「VBAで結合セルの行の高さを自動調整する」ページでマクロを紹介していますので参考にしてください。なお、紹介しているマクロは結合セルと単一セルをまとめて範囲選択しても自動調整が可能になっています。
ここではAutoFitメソッドについて紹介します。
AutoFitメソッド
1 |
Rangeオブジェクト.AutoFit |
Rangeオブジェクトには行または列のどちらかを指定します。
行の場合はRowsプロパティ、列の場合はColumnsプロパティを設定します。
RowsプロパティとColumnsプロパティのいずれも設定していない場合は行と列のどちらを自動調整すればよいのか判定できないため、エラー1004になります。
サンプルコード
A1からC3セルの高さと幅を事前に4に設定したあとに、文字列に合わせてAutoFitで高さと幅を自動調整するサンプルです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Sub AutoFitTest() Dim r As Range '// A1からC3セルの範囲をRangeオブジェクト変数に代入 Set r = Range("A1:C3") '// A1からC3セルの範囲に文字列を入力 r.Value = "abcabcabc" '// A1からC3セルの範囲の高さと幅をそれぞれ4に設定 r.RowHeight = 4 r.ColumnWidth = 4 Debug.Print r.RowHeight Debug.Print r.ColumnWidth '// 1行目から3行目の高さを自動調整 Rows("1:3").AutoFit '// A列からC列の幅を自動調整 Columns("A:C").AutoFit Debug.Print r.RowHeight Debug.Print r.ColumnWidth End Sub |
実行結果
4
4
12.75
10