サイトについて      連絡先   検索

VBA 行の高さを調整する

はじめに

Excel VBA マクロの行の高さを調整する方法を紹介します。

Rows.RowHeight プロパティまたは Range.RowHeight プロパティから行の高さを調整できます。

Rows.AutoFit メソッドで行の高さを自動調整できます。

  • 目次
    • 行の高さを取得する
    • 行の高さを設定する
    • 複数行の高さを取得する
    • 複数行の高さを設定する
    • 行の高さを自動設定する
    • 指定したシートの行を高さする

行の高さを取得する

Rows の引数に行番号を指定すると、その行の高さを取得できます。

行「2」の高さを取得するにはRows(2).RowHeightを入力します。


Dim d As Double
d = Rows(2).RowHeight
d = Rows(2).Height
Debug.Print(d)

Range の引数にセル名を指定すると、そのセルを取得できます。EntireRow からその行を取得できます。

セル「A1」の行を高さするにはRange("A1").EntireRow.RowHeightを入力します。


Dim d As Double
d = Range("A1").EntireRow.RowHeight
d = Range("A1").EntireRow.Height
Debug.Print(d)

1 行の高さを取得するとき RowHeight と Height は同じ値を返します。

行の高さを設定する

行「2」に高さを設定するにはRows(2).RowHeight = 20のように入力します。


Rows(2).RowHeight = 20
1

セル「A1」の行に高さを設定するにはRange("A1").EntireRow.RowHeight = 20のように入力します。


Range("A1").EntireRow.RowHeight = 20

Height は読み取り専用なので設定できません。

複数行の高さを取得する

行の範囲「2 ~ 3」の高さを取得するにはRange("2:3").RowHeightを入力します。

範囲のすべての行の高さが同じときに 1 行の高さを取得します。違う高さが含まれているときは Null になります。


Dim d As Double
d = Range("2:3").RowHeight ' 2 ~ 3 行目の高さを取得
d = Range("4:4").RowHeight ' 4 行目の高さを取得
Debug.Print(d)

Height を使用すると範囲の高さの合計を取得します。


Dim d As Double
d = Range("2:3").Height ' 2 ~ 3 行目の高さの合計を取得
Debug.Print(d)

複数行の高さを設定する

行の範囲「2 ~ 3」に高さを設定するにはRange("2:3").RowHeight = 20のように入力します。

各行の高さが指定した高さになります。


Range("2:3").RowHeight = 20
2

行の高さを自動設定する

行の高さをセルの内容に合わせて自動調整するには Rows.AutoFit メソッドを使用します。

行「2」の高さを自動設定するにはRows(2).AutoFitを入力します。


Rows(2).AutoFit             ' 2 行目の高さを自動調整
Range("2:3").Rows.AutoFit   ' 2 ~ 3 行目の高さを自動調整
3

指定したシートの行を高さする

シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。

Sheet1 を指定するにはWorksheets("Sheet1")またはWorksheets(1)を入力します。

sheet1

' Sheet1 の行の高さを設定
Worksheets("Sheet1").Rows(1).RowHeight = 20
Worksheets(1).Rows(1).RowHeight = 20

' Sheet2 の行の高さを設定
Worksheets("Sheet2").Rows(1).RowHeight = 20
Worksheets(2).Rows(1).RowHeight = 20

Sheet1 に Rows を入力すると、自身のシートの行になります。自身を表すMe.が省略されています。


' どちらも同じコード
Dim r As Range
Set r = Rows(1)
Set r = Me.Rows(1)

標準モジュールに Rows を入力すると、アクティブなシートの行になります。アクティブシートを表すActiveSheet.が省略されています。


' どちらも同じコード
Dim r As Range
Set r = Rows(1)
Set r = ActiveSheet.Rows(1)
  • 目次
    • 行の高さを取得する
    • 行の高さを設定する
    • 複数行の高さを取得する
    • 複数行の高さを設定する
    • 行の高さを自動設定する
    • 指定したシートの行を高さする