10/29/2023

Excel。VBA。セル内の改行を削除して1行に戻したい。【remove line breaks】

Excel。VBA。セル内の改行を削除して1行に戻したい。

<Excel VBA:Replace関数>

セル内で、Alt+Enterと入力すると、セル内の任意の場所に、改行を挿入することができます。


今回は、その入力されている改行を削除して、元の1行に戻したいわけです。

セル内の改行を削除

しかも、大量なデータが処理対象だとすれば、手作業というわけにもいきません。


そこで、Excel VBAでプログラム文をつくって対応することにします。

Sub 改行削除()

    Dim i As Integer

    Dim row_count As Integer    

    row_count = Range("a1").End(xlDown).Row

    

    For i = 2 To row_count

        Cells(i, "a") = Replace(Cells(i, "a"), vbLf, "")

    Next

End Sub


では、実行して確認してみます。


セル内改行が削除されて、1行に戻すことができました。


では、プログラム文を確認しておきましょう。


宣言文ですね。

Dim i As Integer

Dim row_count As Integer


このあとFor文で繰り返し処理をするので、繰り返し数を代入しているのが、row_countです。    

row_count = Range("a1").End(xlDown).Row



For i = 2 To row_count

    Cells(i, "a") = Replace(Cells(i, "a"), vbLf, "")

Next


Replace関数は、置換することができる関数です。


Alt+Enterの改行は、「vbLf」は、改行のコードナンバーを表しています。

このvbLfを「””」で置換させることで、削除と同じ意味になります。


よって、セル内の改行を削除して、1行にすることができたというわけです。