行の高さを変更・自動調整・取得する方法

今回の目標

この記事では、行の高さを特定の数値に変更したり、セル内の文字や改行などの内容に合わせて変更する方法を解説します。
このプロパティは Double 型で、整数だけでなく小数も指定できます(例:12.5 など)。

目標リスト

  • 行の高さを特定の長さへ変更する
  • 行の高さを取得する
  • 行の高さを自動で調整する

RowHeight / AutoFit について

RowHeight プロパティとは

RowHeight プロパティは、行の高さを変更または取得します。
このプロパティは Double 型で、数値の単位はポイント(pt)です。

RowHeight プロパティの構文

1行目の高さを 32.5 に変更する処理です。

Rows("1").RowHeight = 32.5

1行目の高さを取得する処理です。
取得結果はイミディエイトウィンドウに表示します。

Debug.Print Rows("1").RowHeight

AutoFit メソッドとは

AutoFit メソッドは、セル内の文字や改行などの内容に合わせて、行の高さを自動で調整します。

AutoFit メソッドの構文

1行目の高さをセル内の文字や改行などの内容に合わせて、行の高さを自動で調整するプログラムです。

Rows("1").AutoFit

行の高さを変更する

RowHeight に数値を設定することで、行の高さを変更します。

サンプルコード

Sub RowHeightChange1()
    '2行目の高さを 36 に変更する
    Rows("2").RowHeight = 36
End Sub
【実行結果】
(下の画像のように、2行目の高さが 36 に変更します)
プログラム実行後の画像

行の高さを取得する

RowHeight を使い、行の高さを取得します。

サンプルコード

Sub RowHeightChange2()
    '2行目の高さを 36 に変更する
    Rows("2").RowHeight = 36
    '2行目の高さをイミディエイトウィンドウに表示する
    Debug.Print Rows("2").RowHeight
End Sub
【実行結果】
(2行目の高さが 36 になり、イミディエイトウィンドウに 36 と表示します)

複数の行の高さを変更する

Rows に複数の行を指定して、RowHeight を設定すると、まとめて変更できます。

サンプルコード

Sub RowHeightChange3()
    '2行目から4行目の高さを 42 に変更する
    Rows("2:4").RowHeight = 42
End Sub
【実行結果】
(下の画像のように、2行目から4行目の高さを 42 に変更します)
プログラム実行後の画像

セルが含まれる行の高さを変更する

Range オブジェクトの EntireRow プロパティを経由してから、 RowHeight プロパティに代入することで、参照元のセルが含まれる行の高さを変更できます。
指定したセルが属する行全体の高さを変更できます。 例えば、Cells(2, 3) は、セルC2を指すため、2行目全体の高さを変更します。

サンプルコード

Sub RowHeightChange4()
    'セルC2 の行(=2行目)の高さを変更する
    Cells(2, 3).EntireRow.RowHeight = 50
End Sub
【実行結果】
(下の画像のように、セルC2 の行(=2行目)の高さを変更します)
プログラム実行後の画像

全ての行の高さを変更する

Rowsの引数を指定せずに、RowHeight プロパティを続けることで、全ての行の高さを変更できます。
この方法ではシート全体の行の高さが変更されるため、特定の行だけを変更したい場合は範囲を指定してください。

サンプルコード

Sub RowHeightChange5()
    '全ての行の高さを 10.5 に変更する
    Rows.RowHeight = 10.5
End Sub
【実行結果】
(下の画像のように、全ての行の高さを 10.5 に変更します)
プログラム実行後の画像

セルの内容に合わせて行の高さを自動調整する

AutoFit メソッドを使用することで、行の高さをセル内の文字や改行などの内容に合わせて、行の高さを自動で調整します。 複数の行を自動調整すると、各行ごとに内容に応じた高さに設定されます。

サンプルコード

Sub RowHeightChange6()
    '全ての行の高さを 10.5 に変更する
    Rows.RowHeight = 10.5
    'セルA1、A2にテキストを入力する
    Range("A1") = "Sample"
    Range("A2") = "ExcelVBA"
    '1行目から2行目の行の高さを自動調整する
    Rows("1:2").AutoFit
End Sub
【実行結果】
(下の画像のように、1行目と2行目の行の高さを自動で調整します)
プログラム実行後の画像

関連リンク

ページの先頭へ