【EXCEL VBA | ノート】セル内の改行コードを削除する

スポンサーリンク

セル内の改行コードを削除する

データ処理してると、改行ウザっ。ってなる時あると思います。

今回は、VBAで改行を削除する方法を紹介します。

3種類の改行コード

そもそもですが、改行は見た目何もないですが、ここ改行だよって指示するための「文字コード」が入力されている状態です。

ややこしいのは、その改行コードが1つでは無く3種類存在するってところです。

改行コード

改行コード16進数10進数読み方
vbCr0D13Carriage Return(キャリッジリターン)
vbLf0A10Line Feed(ラインフィード)
vbCrLf0D0A13 10Carriage Return + Line Feed (キャリッジリターン・ラインフィード)

通常EXCELを使っていて、セルの中で「Alt+Enter」で改行をすると、”vbLf”になります。

昔のMacOSは”Cr”を使ってたみたいですが、今は”Lf”みたいです。

でも、WindowsOSは基本的には”CrLf”使ってるようで。。。

メモ帳とかで改行した場合は、CrLfになります。

改行の削除方法

ということで、改行を削除する場合は、改行コードを取り除いてあげればいいということになりますね。

あるものを、無いものに取り替えるということです。

取り替えるといえば、”Replace関数”です。

Replace関数を使って、文字コードを亡き者に取り替えてしまいましょう!!

それでは、次のサンプルで試してみます。

A1セル内で改行が入っている(ここではAlt+Enterで改行しているので、vbLfの想定)文字列を、Replace関数で改行を取り除いて、B1セルに表示してみましょう!

コードは次のようになります。

たったの1行!

Sub sample()

    Range("B1") = Replace(Range("A1"), vbLf, "")
    
End Sub

”vbLf”を””(亡き者)に置き換えしているだけ。

では実行します。

B1セルに、改行が取り除かれた文字列が表示されました!

EXCEL内で作ったデータは、基本的には”vbLf”の置き換えで上手くいくことが多ですが、どっか別のシステムからCSVで落としたのを読み込んで処理したりする場合は、"vbCrLf"や”vbCr”でないと置き換えれない場合がありますので、適宜状況を見て試してみて下さい(^o^)

おまけ

改行コードについて書いた記事です。

これはワークシート関数の記事ですが、この記事にある「CHAR(10)」の”10”は、 vbLf の10進数表記ですね(^o^)