セルの先頭や末尾に入っている改行を削除するためのユーザー定義関数をご紹介しました。
印刷時に文字が切れてしまわないようにするために、逆に、セルの末尾に必ず改行を入れておきたいという要望が出ることもあります。
Excelから他のシステムにデータを渡す場合に、セルの最後に改行を入れておいて欲しいという要望が出ることもあります。
セルの末尾に改行コードを追加するサンプルマクロ
手作業で行うとなると、かなり面倒な処理ですが、VBA(Visutal Basic for Applications)でマクロを作成すれば楽に処理できます。
Dim rng As Range
For Each rng In Selection.Cells
With rng
If Right(.Text, 1) <> vbLf Then
.Value = .Text & vbLf
.WrapText = True
End If
End With
Next rng
末尾に改行を追加しておきたいセルを選択しておいて、上記のマクロを実行してやると、セルに入力されているデータの末尾が改行でないセルにだけ改行が追加されます。
サンプルマクロの解説
選択されているセルに対してFor Each~Nextループを回して、
For Each rng In Selection.Cells
各セルの最後の文字列が改行コードかどうかをチェックしています。
With rng
If Right(.Text, 1) <> vbLf Then
セルの末尾が改行コードではなかったときに、改行コードを追加して、
.Value = .Text & vbLf
折り返して表示設定を行っています。
.WrapText = True
End If
Excelの改行コードは、ASCIIコードの「10」(16進数なら「0x0A」)・LF(Line Feed)ですから、
If Right(.Text, 1) <> vbLf Then
.Value = .Text & vbLf
のように定数・vbLfを使わずに「Chr(10)」を使って
If Right(.Text, 1) <> Chr(10) Then
.Value = .Text & Chr(10)
のようにする方もいらっしゃると思いますが、定数を使うほうが可読性が上がっていいと私は考えています。
Home » Excel VBA Rangeオブジェクト » セルの末尾に改行コードを追加するExcelマクロ