Excel VBA 逆引き集 | 行の自動調整

Excel VBA
スポンサーリンク

行の自動調整

セル内に長い文字列や改行を入れると「文字が見切れる」「行が狭すぎる」ことがあります。そんなときに便利なのが 行の自動調整(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 を使う。
    • CurrentRegionUsedRange と組み合わせると柔軟に指定可能。
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 を併用し、必要範囲だけに絞る。
  • 印刷時の見え方: 画面と印刷で高さの印象が変わる。提出前は「ページレイアウト」で確認。
タイトルとURLをコピーしました