Excel VBA

【Excel VBA】【マクロ】【Tips】行の高さを下げずにAutoFitする方法

こんにちは!Lenocoです。本日も見てくださりありがとうございます。

今回は「AutoFit」でセルの内容に合わせて行の高さを調整したいけど、
**今の高さより小さくはしたくない!**という時に使えるマクロをご紹介します!

こんな時ありませんか?

Excelでテキストが長くなると、行の高さを AutoFit で調整したくなりますよね。
でもこの AutoFit、実は高さを縮めてしまうことがあります。

行の高さを“縮めない”AutoFitとは?

今回作るマクロは、
「AutoFitで高さは広げてもいいけど、今より小さくはしない」
というルールをもとに動きます。

▼考え方としてはこんな感じ
1. 各行の今の高さを一旦メモ
2. AutoFit を実行して高さを測定
3. もし AutoFit 後の高さが今より低ければ → 元の高さに戻す
4. 高ければそのまま採用
では見ていきましょう!

コード

Sub AutoFitRows(rng As Range)
    Dim r As Range
    Dim originalHeight As Double
    
    For Each r In rng.Rows
        originalHeight = r.RowHeight   ' 元の高さを保存
        r.AutoFit                      ' AutoFit 実行
        
        ' 高さが小さくなっていたら、元に戻す
        If r.RowHeight < originalHeight Then
            r.RowHeight = originalHeight
        End If
    Next r
End Sub

コードの説明

引数で受け取ったセル範囲を1行ずつループで見ていきます。
まず元の高さをDouble型の変数に保存しておきます。
(Double型は小数点を含む数値を格納できますよ!)
AutoFitを実行して、行の高さを調整をします。
保存しておいた元の行の高さと、今現在の行の高さを比べて、
小さくなっていたら元の高さに戻します。
そうでなければ、何もしません(調整された行の高さを維持します)。

おわりに

今回のマクロは、見た目を保ちつつデータがはみ出ないようにしたい時にとっても便利です!
「AutoFitは使いたいけど、勝手に縮められたくない…」という方におすすめ!
ぜひ使ってみてください!

Lenoco

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です