🎨
AutoFitRows
書式設定アクティブシートのすべての行高を内容に合わせて自動調整します
シート上のすべての行、または選択した行の高さを、セル内のコンテンツ(テキストの折り返しや文字サイズ)に合わせて自動的に最適な高さに調整するマクロです。複数行テキストや大きなフォントが含まれる行が潰れて読めなくなる問題を一括解消します。AutoFitColumnsと組み合わせてシート全体のレイアウトを一度に整えることで、資料のクオリティを素早く向上させることができます。内部ではRows.AutoFitメソッドを利用し、セル内の折り返しテキストやフォントサイズに応じて行の高さを自動計算します。AutoFitColumnsと対になる処理で、両方を続けて実行することでシート全体のレイアウトを一度に整えられます。特に複数行にわたるコメントや説明文を含む表で、行の高さがバラついている問題を根本的に解消します。

📖 使い方
- VBAエディタを開く(Alt + F11)
- モジュールを挿入(挿入 > モジュール)
- 下記VBAコードをコピー&ペースト
- ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: AutoFitRows を実行すると、シート内の全行が自動調整されます
🎯 活用シーン
- ✓折り返しテキストが含まれる表で行高さがバラバラになっている場合に、全行を内容に合わせて一括調整したいとき
- ✓フォントサイズを変更した後に行高さが追いついていない場合に、一括で最適高さに整えたいとき
- ✓他者から受け取った複数行テキストを含む表の行高さを自動調整して、資料の見た目を改善したいとき
- ✓アンケートの自由記述欄など長文が入るセルを含む表で、行の高さを内容に合わせて自動調整したいとき
- ✓フォントサイズ変更後にレイアウトが崩れた資料を、素早く適切な行高さへ修正したいとき
💡 実装のヒント
- ▸セルに「折り返して全体を表示する」書式が設定されていると、折り返し行数に応じて行高さが自動調整されます。
- ▸結合セルの行高さは自動調整が正しく機能しない場合があります。結合セルを含む行は手動で高さを調整することをお勧めします。
- ▸非常に多くの折り返しテキストが含まれる場合、行高さが極端に大きくなることがあります。最大行高さの上限設定をマクロに追加することで対処できます。
- ▸フォントサイズを変更した直後は行高さが古いままのことがあるため、変更後に必ずAutoFitRowsを実行する習慣をつけると安全です。
- ▸結合セルを含む行はAutoFitが正しく機能しないことがあるため、UnmergeCellsFormattingで一時的に解除してから実行する方法もあります。
💻 VBAコード
' AutoFitRows
' -----------------
' Macro Name: AutoFitRows
' Description: アクティブシートのすべての行高を内容に合わせて自動調整します
' Parameters: なし
' Returns: なし
' Usage: AutoFitRows を実行すると、シート内の全行が自動調整されます
' -----------------
Sub AutoFitRows()
On Error GoTo ErrorHandler
Dim ws As Worksheet
Set ws = ActiveSheet
ws.Cells.EntireRow.AutoFit
MsgBox "行高を自動調整しました", vbInformation, "完了"
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しました:" & vbCrLf & Err.Description, vbCritical, "エラー"
End Sub