前回に引き続き、テキストファイルについてのお話をします。今回もテキストファイルとエクセルです。エクセルで変わったテキストファイルを使うためのポイントをお話しします。
前回、エクセルでは、固定長テキストと区切りテキストをウィザードを使って取り込める話をしました。システムから出力されたテキストファイルはこれで比較的楽に取り込むことができます。しかし、箇条書きにされた文章やフリーな書式で出力されているデータファイルなどはなかなかうまく取り込めなくて苦労している話を聞きます。
私の過去の経験を踏まえ、それらの取り込みを少し楽にする方法をいくつか紹介します。
◆テキストファイルの文字化け
テキストファイルなので、テキストエディターで事前に見ることができます。文字化けなので困っている場合は、複数の文字コードに対応できるテキストエディターで一度読み込んだのちにShiftJISなどのわかりやすい文字コードで保存しなおすと文字化けを心配しなくて済みます。前回裏ワザを紹介しましたが、私も裏ワザを知るまではこちらの方法で対応していました。
◆区切り文字の加工
テキストファイルによっては、区切り文字がうまく入っていないが固定長のように並んでいないものがあります。また、区切り文字にしたいものが複数ある場合はテキストの中に入っているその文字を統一の区切り文字に置き換えるようにします。
テキストファイルウィザードはタブ、セミコロン、カンマ、スペースを同時に区切り文字として指定できますが、その他は一つしか入れられません。区切り文字を一つに統一することで機能をそのまま使えるようになるのです。
具体的にはテキストエディターの置換機能で置き換えていくのですが、句読点やスペース等区切りになりそうなものをすべて記号文字(たとえば◆)に置き換えていきます。本当はもともと区切り文字として指定できるタブやセミコロン、カンマなどで置き換えるといいのですが、置き換えるとかえって区切りがわかりづらいことがあるので、文章の中に使われていない記号を使って置き換えます。
◆スペースの挿入
上記のような置き換える文字が全くない場合は仕方がないので、区切りたいところにスペースを入れるようにします。スペースにする理由はキーボードでほかの区切り文字よりスペースが入れやすいからと見た目で区切りがわかりやすいからです。
◆取り込み後の加工
できるだけ取り込み前に加工したほうが楽なことが多いですが固定長で取り込んでから、改めて区切り文字で区切りを追加したり、区切り文字で取り込んだのちに固定長で切り分けたほうが処理がはやい場合もあります。
この場合は取り込んだ後にエクセルの区切り位置機能を利用します。これはテキストファイルウィザードをエクセルに取り込んだセルに対して利用できるものです。利用方法は対象となるセルを範囲指定したのちに区切り位置機能をクリックするとテキストファイルウィザードと全く同じ画面が出てきますので、前回の流れを参考に区切るだけです。
ただし、1列毎でしか処理ができないことと既存列を上書きしてしまう可能性があるので予め必要な列数を区切る列の右側に挿入で開けておくことが必要です。
今回は比較的よく使う4つの方法をお話ししましたが、これらは単独で使うわけではなく組み合わせて使います。そうすることで負担が少なく楽にデータとしてテキストファイルを利用できるようになります。
加工頻度が多い場合は、上記の作業をエクセルマクロで行って取り込むようなこともありますが、それでも最初は上記の作業を行って、不備がないか確かめてから行うことをお勧めしています。