セル内の改行を削除しよう
こんにちは、Onoです。
今回は改行コードに関してです。ExcelVBAをやっていると「文字列を置き換えて欲しいんだけど」、と頼まれる事が多いかと思います。ExcelVBAから、プログラムに入った方は、改行を削除する処理に戸惑いを感じるかも知れません。
VBAでは改行コードは組み込み定数として用意されています。組み込み定数は次の(1)〜(3)になります。つまり、この組み込み定数をセル内で見つけて、空文字に置き換えれば良いわけです。
(1)vbCrLf キャリッジリターンとラインフィードの組み合わせ
(2)vbCr キャリッジリターン文字
(3)vbLf ラインフィード文字
注意すべき点は、セル内で、「Alt+Enter」で改行した場合はvbLfを空文字に置換する事で、セル内の改行をなくす事が出来るという点です。
余談ですが、私が持っている資料を確認してみると、キャリッジリターンとラインフィードはタイプライターの仕組みに由来しているそうです。キャリッジリターンは行の頭に移動、ラインフィードは紙を1行下に送る動作のようです。
それでは、簡単なサンプルプログラムと実行結果は下記となります。
図1のマクロを実行すると、図2の実行結果になります。「本日は晴天です」の改行がなくなっているのが確認出来ます。
改行の削除は、データを整える時に良く使うので、覚えておくと便利だと思います。