Excel VBA 逆引き集 | 行の高さ調整

Excel VBA
スポンサーリンク

行の高さ調整

Excelでは「行の高さ」を自由に変えられます。VBAで操作すると、複数行を一括で整えたり、自動調整したり、条件に応じて高さを変えることができます。初心者向けに最短コードから応用例まで整理しました。


基本:行の高さを直接指定

Sub RowHeight_Basic()
    '3行目の高さを20ポイントに設定
    Rows(3).RowHeight = 20

    '複数行(2〜5行)の高さをまとめて設定
    Rows("2:5").RowHeight = 25
End Sub
VB
  • ポイント:
    • RowHeight プロパティに数値を代入するだけ。単位は「ポイント」。
    • 複数行を範囲指定すれば一括で変更可能。

自動調整(AutoFit)

Sub RowHeight_AutoFit()
    '2〜10行の高さを内容に合わせて自動調整
    Rows("2:10").AutoFit

    'シート全体の行を自動調整
    Cells.Rows.AutoFit
End Sub
VB
  • ポイント:
    • AutoFit はセルの内容に合わせて高さを自動調整。
    • 長文や改行があるセルでも最適な高さにしてくれる。

条件付きで高さを変える

Sub RowHeight_ByCondition()
    Dim last As Long, r As Long
    last = Cells(Rows.Count, "B").End(xlUp).Row

    For r = 2 To last
        If Cells(r, "B").Value = "重要" Then
            Rows(r).RowHeight = 30   '強調したい行は高めに
        Else
            Rows(r).RowHeight = 15   '通常は低めに
        End If
    Next
End Sub
VB
  • ポイント:
    • 値に応じて高さを変えると「見やすい表」になる。
    • ループで行ごとに条件判定。

最終行まで一括調整

Sub RowHeight_ToLastRow()
    Dim last As Long
    last = Cells(Rows.Count, "A").End(xlUp).Row
    Rows("2:" & last).RowHeight = 18
End Sub
VB
  • ポイント:
    • データが毎回変わる表でも、最終行まで自動で高さを揃えられる。

例題で練習

例題1:見出し行を強調(高さ30)、データ行は高さ18

Sub Example_HeaderAndData()
    Rows(1).RowHeight = 30
    Dim last As Long
    last = Cells(Rows.Count, "A").End(xlUp).Row
    Rows("2:" & last).RowHeight = 18
End Sub
VB

例題2:選択範囲の行を自動調整

Sub Example_AutoFitSelection()
    If TypeName(Selection) = "Range" Then
        Selection.Rows.AutoFit
    End If
End Sub
VB

例題3:文字数が多い行だけ高さを広げる

Sub Example_AdjustByLength()
    Dim last As Long, r As Long
    last = Cells(Rows.Count, "C").End(xlUp).Row
    For r = 2 To last
        If Len(Cells(r, "C").Value) > 20 Then
            Rows(r).RowHeight = 25
        Else
            Rows(r).RowHeight = 15
        End If
    Next
End Sub
VB

実務の落とし穴と対策

  • 高さが固定される: AutoFit を使わないと、文字が隠れることがある。必要に応じて自動調整を組み合わせる。
  • 結合セルの扱い: 結合セルは AutoFit が効かない場合あり。結合を避けるか、手動で高さを設定。
  • 大量行で遅い: 1行ずつループすると遅い。まとめて範囲指定して高さを変えると高速。
  • 見た目の統一: 見出し行だけ高めに、データ行は揃えておくと表が読みやすい。
タイトルとURLをコピーしました