Home » ExcelVBA Rangeオブジェクト » セルの末尾に改行コードを追加するExcelマクロ

セルの末尾に改行コードを追加するExcelマクロ

対象:Excel2003, Excel2007, Excel2010

セルの先頭や末尾に入っている改行を削除するためのユーザー定義関数をご紹介しました。

印刷時に文字が切れてしまわないようにするために、逆に、セルの末尾に必ず改行を入れておきたいという要望が出ることもあります。

Excelから他のシステムにデータを渡す場合に、セルの最後に改行を入れておいて欲しいという要望が出ることもあります。

[スポンサードリンク]

セルの末尾に改行コードを追加するサンプルマクロ

手作業で行うとなると、かなり面倒な処理ですが、VBA(Visutal Basic for Applications)でマクロを作成すれば楽に処理できます。

Sub セルの末尾に改行を追加する()

 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

End Sub

末尾に改行を追加しておきたいセルを選択しておいて、上記のマクロを実行してやると、セルに入力されているデータの末尾が改行でないセルにだけ改行が追加されます。

サンプルマクロの解説

選択されているセルに対して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 » ExcelVBA Rangeオブジェクト » セルの末尾に改行コードを追加するExcelマクロ

「ExcelVBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.