※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。
2026年6月5日【ID:0】
メンバー限定
【ExcelVBA】選択セルの行の高さを自動調整
複数行の文字がセル内に入力されていて、行の高さを高くしている場合、確認時の縦スクロールの回数が増えてしまいます。

そのため今回は、選択したセルの行の高さを自動で調整し、他のセルを選択すると同時に行の高さが初期値に戻る仕組みを実現していきます。

※こちらで作成したファイルは、記事の最後にて配布しています。
1. 仕組み
今回の仕組みは、以下のようになります。
| ① セルを選択すると同時に、選択しているセルの行の高さを自動調整 ② 他のセルを選択すると同時に、行の高さを初期値に戻す |
「① 」については、2行目以降のセルが選択されたときのみに適用します。

「② 」については、1行目の行の高さを初期値とします。

特定のシート上のセルを選択すると同時に、何かしらの処理を実行するには「シートモジュール」を活用します。
2. 開発準備
シートモジュールを開くには、対象シートのタブの上で右クリックし、[コードの表示]を選択します。

表示された画面がシートモジュールになります。

「Option Explicit」は、VBEの設定次第では表示されません。「Option Explicit」についての解説はこちらでは省略します。
次に、左上のリストから[Worksheet]を選択します。

選択すると「Worksheet_SelectionChange」というイベントプロシージャが表示されます。
万が一、異なるイベントプロシージャが表示された場合は、右上のリストから「SelectionChange」を選択してください。

このイベントプロシージャは、該当するシートのセルの選択位置が変更されると同時に実行されるものになります。
3. コードの記述
以下のコードを記述します。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Rows.RowHeight = Rows(1).RowHeight
With Target.Rows(1)
If .Row <> 1 Then
.AutoFit
End If
End With
End Sub
では、コードについて解説していきます。
Rows.RowHeight = Rows(1).RowHeight
シート上の全ての行の高さを、1行目の高さと同じにしています。
With Target.Rows(1)
If .Row <> 1 Then
.AutoFit
End If
End With
選択しているセル(複数セルを選択しているときは先頭のセル)の行番号が1でないときに、その行の高さを自動調整しています。
4. 完成(仮)
以上の手順で、最低限の仕組みは完成です。
1行目以外のセルを選択すると同時に、その行の高さが自動調整されます。

ただ、自動調整された行の高さは、余白が少なく圧迫感があります。
そのため、以下のように余白を設けて調整されるように修正していきます。

5. コードの修正
続きはIT予備メンバー限定です。
メンバー限定コンテンツになります。

IT予備メンバーページと連携することで内容を確認することができます。
メンバーとは
すでにメンバーの方は、
ログインして連携してから、こちらを更新すると閲覧できます。
※連携しても確認ができない場合は、少し時間を置いてご確認ください。
ログイン(新しいタブ)
※[ログイン]→[設定]→[IT予備-連携]で連携できます
※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。




















































