セル幅・高さの設定
表を見やすくするために「列幅」「行高さ」を調整する方法を、初心者向けにわかりやすくまとめました。基本は ColumnWidth と RowHeight プロパティを使います。自動調整は AutoFit が便利です。
基本:列幅・行高さを指定する
Sub SetWidthHeight_Basic()
'列幅を設定(A列を20文字分)
Columns("A").ColumnWidth = 20
'行高さを設定(1行目を30ポイント)
Rows(1).RowHeight = 30
'特定セル範囲にまとめて設定
Range("B2:D2").RowHeight = 25
Range("B2:D2").ColumnWidth = 15
End Sub
VB- ポイント:
- ColumnWidth: 文字数基準で幅を指定。
- RowHeight: ポイント単位で高さを指定。
- 範囲指定: Range に対しても一括で設定可能。
自動調整(AutoFit)
Sub AutoFitExample()
'A列の幅を内容に合わせて自動調整
Columns("A").AutoFit
'2行目の高さを内容に合わせて自動調整
Rows(2).AutoFit
'表全体を自動調整
Range("B2:E20").Columns.AutoFit
Range("B2:E20").Rows.AutoFit
End Sub
VB- ポイント:
- AutoFit: 内容に合わせて最適な幅・高さに自動調整。
- 見出しが長い場合: AutoFitすると幅が広がりすぎることがあるので、必要なら ColumnWidth で制限。
複数列・複数行をまとめて設定
Sub SetMultipleWidthsHeights()
'B〜D列を幅15に
Columns("B:D").ColumnWidth = 15
'3〜5行を高さ25に
Rows("3:5").RowHeight = 25
End Sub
VB- ポイント: 範囲指定で複数列・行をまとめて設定できる。見出し行やデータ列を一括整形すると効率的。
表の見出しを整えるテンプレート
Sub FormatHeader()
With Range("B2:E2")
.RowHeight = 30
.Font.Bold = True
.HorizontalAlignment = xlCenter
.Interior.Color = RGB(217, 217, 217)
End With
Columns("B:E").ColumnWidth = 18
End Sub
VB- ポイント: 見出しは「高さを少し広め」「太字」「中央揃え」「背景色」で見やすく。
例題で練習
例題1:売上表の列幅を自動調整+行高さを固定
Sub Example_SalesTableFormat()
Columns("B:E").AutoFit
Rows("2:20").RowHeight = 22
End Sub
VB例題2:コード列は幅を固定(等幅フォントと相性良し)
Sub Example_CodeColumn()
Columns("A").ColumnWidth = 12
Columns("A").Font.Name = "MS Gothic"
End Sub
VB例題3:見出し行を高さ30、本文行を高さ20に
Sub Example_HeaderBodyHeight()
Rows(2).RowHeight = 30
Rows("3:100").RowHeight = 20
End Sub
VB実務の落とし穴と対策
- AutoFitで幅が広がりすぎる: 長い文字列があると列幅が極端に広がる。必要なら最大幅を ColumnWidth で制限。
- 結合セルのAutoFitが効かない: 結合セルは AutoFitできない。結合を避けるか、RowHeight/ColumnWidth を手動指定。
- 大量範囲で遅い: ScreenUpdating=False を併用すると高速化。
- 見た目と印刷のズレ: 印刷時は「ページレイアウト」で確認。列幅・行高さは画面と印刷で印象が変わることがある。
