セル内の改行コードを削除する
データ処理してると、改行ウザっ。ってなる時あると思います。
今回は、VBAで改行を削除する方法を紹介します。
3種類の改行コード
そもそもですが、改行は見た目何もないですが、ここ改行だよって指示するための「文字コード」が入力されている状態です。
ややこしいのは、その改行コードが1つでは無く3種類存在するってところです。
改行コード
改行コード | 16進数 | 10進数 | 読み方 |
---|---|---|---|
vbCr | 0D | 13 | Carriage Return(キャリッジリターン) |
vbLf | 0A | 10 | Line Feed(ラインフィード) |
vbCrLf | 0D0A | 13 10 | Carriage 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^)
コメント