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行にすることができたというわけです。