行の自動調整
セル内に長い文字列や改行を入れると「文字が見切れる」「行が狭すぎる」ことがあります。そんなときに便利なのが 行の自動調整(AutoFit)。初心者でも迷わず使える最短コードから、範囲指定、見出しだけ調整、結合セルの注意までをまとめます。
基本:行高さを自動調整する
Sub AutoFitRows_Basic()
'1行目を自動調整
Rows(1).AutoFit
'3〜5行を自動調整
Rows("3:5").AutoFit
'シート全体の行を自動調整
Cells.EntireRow.AutoFit
End Sub
VB- ポイント:
Rows(n).AutoFit→ 指定行を内容に合わせて高さ調整。Cells.EntireRow.AutoFit→ シート全体を一括で調整。
範囲指定で行を自動調整
Sub AutoFitRangeRows()
'表範囲の行だけ自動調整
Range("B2:E20").Rows.AutoFit
End Sub
VB- ポイント:
- 表以外に影響させないなら、範囲.Rows.AutoFit を使う。
CurrentRegionやUsedRangeと組み合わせると柔軟に指定可能。
Sub AutoFitCurrentRegion()
With Range("B2").CurrentRegion
.Rows.AutoFit
End With
End Sub
VB見出し行だけ高さを広げる(本文は自動調整)
Sub AutoFitHeaderAndBody()
'見出し行は固定で高さ30
Rows(2).RowHeight = 30
'本文は自動調整
Range("B3:E100").Rows.AutoFit
End Sub
VB- ポイント:
- 見出しは「高さ固定+中央揃え」で安定。
- 本文は AutoFit で文字量に合わせると見やすい。
結合セルがある場合の注意
Sub AutoFitWithMergedCells()
'結合セルは AutoFit が効かないため、手動で高さ指定
Rows(2).RowHeight = 25
End Sub
VB- ポイント:
- 結合セルを含む行は AutoFit が期待通りに動かない。
- 必要なら RowHeight を直接指定する。
例題で練習
例題1:売上表の行を自動調整(見出しは固定)
Sub Example_SalesRows()
Rows(2).RowHeight = 28
Range("B3:E20").Rows.AutoFit
End Sub
VB例題2:住所列に改行が多いので全行を自動調整
Sub Example_AddressRows()
Cells.EntireRow.AutoFit
End Sub
VB例題3:交互行に色を付けつつ高さを自動調整
Sub Example_AlternateRowFormat()
Dim last As Long, r As Long
last = Cells(Rows.Count, "B").End(xlUp).Row
For r = 3 To last
Rows(r).AutoFit
If r Mod 2 = 0 Then
Rows(r).Interior.Color = RGB(242, 242, 242) '薄グレー
End If
Next
End Sub
VB実務の落とし穴と対策
- 結合セルで効かない: AutoFit は結合セルに非対応。見出しなどは RowHeight を固定指定。
- 高さが広がりすぎる: 改行や長文で極端に広がることがある。上限値を RowHeight で制御すると安定。
- 大量範囲で遅い:
Application.ScreenUpdating = Falseを併用し、必要範囲だけに絞る。 - 印刷時の見え方: 画面と印刷で高さの印象が変わる。提出前は「ページレイアウト」で確認。
