ぼくらの研究

ぼくらのための研究をしていきます。

【VBA】セル内の先頭と末尾にある改行コードを削除する

      2017/02/26

VBA

 

コード内容

指定した範囲のセル内容の先頭と末尾に改行コードがあった場合にそれを削除(置換)するマクロです。

基本的にエクセル内の改行コードは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操作を覚えるのに一番良いと思う本(ぼくはこれで覚えました)