
ExcelVBA 行の高さを操作してデータの可読性を向上させたり、見た目を調整する。 手動で行うと手間がかかる作業を、自動で調整できます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る
Excel VBA 行の高さを操作|シーン
以下のシーンで利用します。
1.特定の行の高さを変更(例: タイトル行を目立たせる)
2.選択範囲の行を自動で最適な高さに調整(例: テキストの折り返しに対応)
3.データがない行を高さゼロ(非表示)にする(例: 空白行を省略)
4.シート全体の行の高さを統一する(例: 見た目を整える)
Excel VBA 行の高さを操作|サンプルコード
Option Explicit
Sub SetRowHeight() '標準モジュール
Rows(1).RowHeight = 30
End Sub
・Rows(1).RowHeight = 30 で1行目の高さを30にする
・RowHeight の単位は ポイント(約0.75mm)
選択した行の高さを20に変更する
Option Explicit
Sub SetRowHeight() '標準モジュール
Rows(1).RowHeight = 30
End Sub
・Rows(1).RowHeight = 30 で1行目の高さを30にする
・RowHeight の単位は ポイント(約0.75mm)
選択した行の高さを20に変更する
Option Explicit
Sub SetSelectedRowHeight() '標準モジュール
If Not TypeOf Selection Is Range Then
MsgBox "セルを選択してください。", vbExclamation, "エラー"
Exit Sub
End If
Selection.EntireRow.RowHeight = 20
End Sub
・Selection.EntireRow.RowHeight = 20 で選択した行の高さを変更
・選択範囲がセルではない場合にエラーを回避する処理を追加
すべての行の高さを15に統一する
Option Explicit
Sub SetAllRowsHeight() '標準モジュール
Cells.RowHeight = 15
End Sub
・Cells.RowHeight = 15 で全シートの行の高さを15に変更
5行目の高さを内容に合わせて自動調整
Option Explicit
Sub AutoFitRow() '標準モジュール
Rows(5).AutoFit
End Sub
・Rows(5).AutoFit でセルの内容に応じて高さを自動調整
選択範囲の行の高さをオートフィット
Option Explicit
Sub AutoFitSelectedRows() '標準モジュール
If Not TypeOf Selection Is Range Then
MsgBox "セルを選択してください。", vbExclamation, "エラー"
Exit Sub
End If
Selection.EntireRow.AutoFit
End Sub
Option Explicit
Sub CopyAllRows() '標準モジュール
Sheets("Sheet1").UsedRange.Copy Destination:=Sheets("Sheet2").Cells(1, 1)
End Sub
・Selection.EntireRow.AutoFit で選択した行の高さを最適化
A列が空白の行を非表示にする
Option Explicit
Sub HideEmptyRows() '標準モジュール
Dim ws As Worksheet
Dim i As Long, lastRow As Long
Set ws = ActiveSheet
lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRow
If ws.Cells(i, 1).Value = "" Then
ws.Rows(i).RowHeight = 0
End If
Next i
End Sub
・A列が空白の行を RowHeight = 0 で非表示にする
・lastRow を取得して、最終行までループ処理
非表示の行を元に戻す
Option Explicit
Sub UnhideAllRows() '標準モジュール
Cells.EntireRow.RowHeight = 15
End Sub
・Cells.EntireRow.RowHeight = 15 で非表示の行もすべて再表示
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る
・行の高さの最小値は0(非表示)、最大値は409
→ Rows(1).RowHeight = 500 のような指定はエラーになる
・オートフィットは結合セルに適用できない
→ AutoFit は 結合セルには動作しない(代わりに .WrapText = True を使う)
・空白行を非表示にする場合は EntireRow.Hidden = True でも可能
→ RowHeight = 0 でも非表示になるが、Hidden = True の方が意図が明確
Rows(5).Hidden = True ' 5行目を非表示
Rows(5).Hidden = False ' 5行目を再表示
・処理速度を向上させるために ScreenUpdating = False を活用
→ 行の高さを一括変更する場合は画面更新を停止すると速くなる
Application.ScreenUpdating = False
'(行の高さを変更する処理)
Application.ScreenUpdating = True
Excel VBA 行の高さを操作|まとめ
目的 | 方法 |
特定の行の高さを変更 | Rows(1).RowHeight = 30 |
選択した行の高さを変更 | Selection.EntireRow.RowHeight = 20 |
全行の高さを統一 | Cells.RowHeight = 15 |
自動調整(オートフィット) | Rows(5).AutoFit |
選択した行を自動調整 | Selection.EntireRow.AutoFit |
空白行を非表示 | Rows(i).RowHeight = 0 |
非表示の行を再表示 | Cells.EntireRow.RowHeight = 15 |
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!