【VBA】セル内の先頭と末尾にある改行コードを削除する
2017/02/26
コード内容
指定した範囲のセル内容の先頭と末尾に改行コードがあった場合にそれを削除(置換)するマクロです。
基本的にエクセル内の改行コードはvbLfですが、一応他からデータを持ってきたりしてvbLfとvbCrLfが混ざっている場合も想定して、どう混ざっていても対応できるように作りました。
Option Explicit Sub Sample() Dim trg As Range Dim i As Integer Range("A1:A9999").Replace What:=vbCrLf, Replacement:=vbLf, LookAt:=xlPart, MatchCase:=True For Each trg In Range("A1:A9999") If Len(trg.Value) > 0 Then Do While Right(trg.Value, 1) = vbLf trg.Value = Left(trg.Value, Len(trg.Value) - 1) Loop Do While Left(trg.Value, 1) = vbLf trg.Value = Right(trg.Value, Len(trg.Value) - 1) Loop End If Next MsgBox "先頭末尾改行コード削除完了" End Sub
コードの説明
このマクロではA1からA9999までの範囲のセルを対象に先頭と末尾の改行コードを削除してくれます。※もちろん中間に入っている改行コードは削除されません。
削除範囲を変えたければ、Range(“A1:A9999”)の部分を変更すればOK。
また今回はReplace関数を使った置換で改行コードをブランクに変えることで削除しましたが、
Do While Right(trg.Value, 1) = vbLf
と
Do While Left(trg.Value, 1) = vbLf
のvbLfの部分を変更することで改行コードではなく任意の文字コードを指定し、その文字だった場合に削除する、というマクロも可能です。
以上、ご参考まで。
注意書き
このマクロを使ったことで何か損害や不利益を被ったとしてもこちらで責任は負いかねます。そこは利用者個人の責任で何卒お願いしたく候。
あと個別のサポートとかもできませぬ。あしからず。
参照設定
デフォルトのままでOKです。いじる必要無し。
VBAのIE操作を覚えるのに一番良いと思う本(ぼくはこれで覚えました)
近田 伸矢,植木 悠二,上田 寛 インプレス 2013-04-19