Digital_Neko

フリーランスプログラマー

セル内の改行を削除しよう

こんにちは、Onoです。

今回は改行コードに関してです。ExcelVBAをやっていると「文字列を置き換えて欲しいんだけど」、と頼まれる事が多いかと思います。ExcelVBAから、プログラムに入った方は、改行を削除する処理に戸惑いを感じるかも知れません。

VBAでは改行コードは組み込み定数として用意されています。組み込み定数は次の(1)〜(3)になります。つまり、この組み込み定数をセル内で見つけて、空文字に置き換えれば良いわけです。

(1)vbCrLf キャリッジリターンとラインフィードの組み合わせ

(2)vbCr キャリッジリターン文字

(3)vbLf ラインフィード文字

注意すべき点は、セル内で、「Alt+Enter」で改行した場合はvbLfを空文字に置換する事で、セル内の改行をなくす事が出来るという点です。

余談ですが、私が持っている資料を確認してみると、キャリッジリターンとラインフィードはタイプライターの仕組みに由来しているそうです。キャリッジリターンは行の頭に移動、ラインフィードは紙を1行下に送る動作のようです。

それでは、簡単なサンプルプログラムと実行結果は下記となります。

図1マクロプログラム
図2実行結果

図1のマクロを実行すると、図2の実行結果になります。「本日は晴天です」の改行がなくなっているのが確認出来ます。
改行の削除は、データを整える時に良く使うので、覚えておくと便利だと思います。