セル内の改行ごとに新しい行に分割するには

セルにはAlt + Enterキーを入力することでセル内でも改行することが可能です。

使い方によっては便利ではありますが、1つのセルに文章が詰め込まれてしまい、行の高さが高くなりスクロールがやりにくかったりする難点もあります。

ここでは、そのセル内の文章を改行ごとに分割して、分割した内容をそれぞれ新しい行に書く方法を紹介します。

実行すると以下のようになります。(わかりやすいように線を引いてます)

実行前

実行後(A1セルを分割+新しい行に追加)

実行前は2行目に緑色の行がありましたが、実行後は新しい行が追加されて8行目に変わっています。


コード

以下のコードは、セル内改行を分割したいセルを選択して実行すると、改行ごとに新しい行に文章を分割します。

複数セルを選択している場合はアクティブセルのみが処理対象になります。

他の列の扱い

改行ごとに分割するのはいいのですが、同じ行にある別の列のデータはどうなるかというと、何もしません。

元のセルの下に行の追加をしているため、他の列のデータは元の行位置にそのまま残ります。

上のコードの24行目にある、r.Offset(1, 0).EntireRow.Insertのコメントで書いている通りですが、元の行のすぐ下の行を起点として新しい行を追加しているため、元の行には影響しないようになっています。そのため、元の行の他の列も何も変わりません。