2015/06/07

Excel データの改行コードを変換

 謎仕様なのですが、Microsoft Excel のセル内改行コードは LF(0x0A)だったりします。
 一方、Windows OS 標準の改行コードは、CR+LF(0x0D0A)です。

 この辺りの相違にはきっと歴史的な経緯があるのでしょうが、具体的な事情は寡聞にして謎のままです。一説によると、Excel は当初 Mac 用(Mac の改行コードは LF)のアプリケーションとして開発された為だそうですが、真偽の程は?
 確かなことは、この改行コードの相違が時としてトラブルの原因になることです。

 Excel でデータを一括で入力して、それを他のシステムで利用するといったシーンで、改行コードの相違を意識せずに処理してしまうと、利用先システムで改行されずにベッタリ一行で表示されてしまったりします。
 なので、そういう場合どこかで改行コードを変換する必要があります。

 いろいろな段階で、いろいろな手法があり、「真面目」なやり方としたら Excel 上で VBScript を使ったり、データベース上で SQL を使ったりとかになるかと思います。
 しかし、今回の方法はズバリ、相当にズボラな方法です。

 必要な物は、テキストエディタ。
 ただし、改行コードの自動変換をしてくれないとダメですので、「メモ帳」では NG です(ただし、これはこれで使い様が…後述)。
 動作確認したのは「秀丸エディタ」ですが、「サクラエディタ」とかも同様に処理してくれるようです。

 手順は以下のとおり。
 ちなみに、Excel は 2010 ですが、他のバージョンでも問題ないものと思います。

  1. Excel: 適宜範囲選択して Ctrl+C でコピー
  2. テキストエディタ: Ctrl+V で貼り付け
  3. テキストエディタ:  [名前を付けて保存] (選択できるようなら、改行コード CR+LF を選択)
  4. テキストエディタ: 保存したファイルを開き直す
  5. テキストエディタ: 貼り付けた範囲を選択して Ctrl+C でコピー
  6. Excel: Ctrl+V で貼り付け

 以上で、見た目は変わりませんが、Excel 上のデータの改行コードは CR+LF になっています。
 ただし、後から追加した改行については LF になりますのでご注意を。

 ちゃんと改行コードが変換されたかの確認方法ですが、これは「メモ帳」を使ってズボラします。
 「メモ帳」は LF のみの改行に対応していないので、貼り付けたデータが改行されていなければ LF ですし、改行されていれば CR+LF と判断できます。
 試しに、手順1 のデータを(複数セルだと判りにくいので 1セルだけ)貼り付ければ改行されないでしょうし、手順6 のデータを貼り付ければ改行されるはずです。

 なお、手順 3, 4 は省いても多分問題無いと思います。少なくとも、「秀丸エディタ」の場合は問題ありません。
 ただ、保存するときに機種依存文字がチェックされますので(これも「秀丸エディタ」の場合は…ですが)、自分は一手間入れるようにしています。
コメントを投稿