「CSVファイル」について語る~ExcelファイルとCSVとは無関係~

ITツール

スポンサーリンク

「CSVファイル」とExcel

CSVファイルというものを使われたことがあるだろうか。
経理とか管理系部門にいる人ならば、必ず使ったことはあるはずだ。

このCSVというファイルは、Windowsのデフォルト設定ではExcelで開かれるようになっている。
またExcelで開いたときは、通常のExcelファイルと割と似通った見た目になる。

この「割と似通った見た目」で開かれるというのが曲者だ。

CSVファイルは、何度保存してからExcelで開いても、セルや文字に色は付いてないわ、セルの高さや幅は変わらないわで、どう見ても普通のExcelファイルより遥かに使い勝手が悪い。

下図のサンプルが、CSVファイルをExcelで開いた例で、このCSVファイルは財務省のHPからDLできる最新の国債金利情報です。

またCSVファイルをExcelで開き、そのまま上書き保存しようとすると、確認メッセージがしつこく出てくる(Excel2016では、これは解消された)。

ここでも通常のExcelファイルより使い勝手が凄く悪い。

でも、見た目が「割と似通っている」ために、CSVファイルはExcelファイルの一種とか兄弟・仲間みたいに思っている人も多いだろう。

しかし、実際のところCSVファイルというのは、Excelファイルとは仲間でもなんでもない

Excelでそこそこ扱いやすいように作られていることは確かだが、何もExcelのために作られているわけではない。

MicrosoftのソフトならAccessとかでも普通に開けるし、その他色々、会計ソフトだとか住所録とかで汎用的に使える。

だから、Excelで扱うときに使い勝手が悪いのも致し方ないことなのだ。

元々ExcelファイルじゃないものをExcelで無理に開いているのだから。

ExcelファイルとCSVファイルを作成する

Excelファイルを作成するというのは、Excelそのものか、それに準ずるソフト(LibreOfficeとかWPS OfficeとかGoogleスプレッドシートとか)を使わないとまず無理だ。

それに対してCSVファイルを作るというのは、Windowsに元々付いてる「メモ帳」さえあれば、ものの20秒でできる。

試しにメモ帳を起動して、「a,b」とでも半角カンマで区切って打ち込んで、「Ctrl + S」で保存コマンド起動→拡張子含めて「test.csv」とでも打って保存してみよう。

紛い物でも何でもなく、れっきとしたCSVファイルがこれで出来上がる。

CSVファイルはテキストファイルだ

CSVファイルというのは「各項目を半角カンマ(と改行)で区切ったテキストファイル」だ。
その定義さえ守ってれば、メモ帳だけで簡単に作成できる。

CSVの正式名はComma-Separated Valuesというらしいが、そのまんま、カンマCommaでセパレートSeparatedされ区切られているということだ。

そして通常、1行(改行が入るまでを1行とカウント)の中で、半角カンマで区切った項目の数は各行とも同じになる。

同じにならないやつもあるけど、そんなのはちょっと厄介すぎて私とかもかなり手こずるので、ここでは考えない。

そういう規則性があるからこそ、Excelで開いたときは、半角カンマで区切られた項目を1単位として1つのセルに納めた形でキレイに表示される。

Excelで、A1セルとB1セルのように横に隣り合ったセルを2つともコピーして、メモ帳に貼り付けてみよう。

メモ帳に貼り付けたとき、2つの値の間には大きめの空白文字が入っているが、これがタブ文字というものだ。
文字通り、キーボードのTabキーで打ち込むことができる。

通常のExcelファイルでは、横どうしの項目は、このタブ文字で区切られている。
それに対してCSVファイルでは、横どうしの項目は半角カンマで区切られている。

CSVファイルというのはメモ帳のみで作れるということで、その実態は「テキストファイル」だ。

テキストファイルというものは、セルの色だの文字の大きさだのという装飾要素なんかは含まれず、純粋に文字の情報だけを格納している。

ただテキストファイルを作成するだけなら、適当に文字の羅列を落書きして保存するだけで良い。

CSVファイルはそれに、半角カンマで規則正しく区切るという規則性が追加されただけの話だ。

CSVファイルの取扱い注意

CSVファイルは自力で作成も保存もしなくて良い

なお、実際のところ、CSVファイルというのは通常、自力でメモ帳とかで作成するものではない。

私なんかはExcelのマクロでCSVファイルを作ったりもするが、一般ユーザはそんなことする必要はないはず。

CSVファイルというのは、会計システムなりのシステムで生成されたものを保存してそのまま使うだけで良いのだ。
中身を書き換える必要すら、通常はない。

くれぐれも注意してもらいたいのは、
CSVファイルは、Excelで開くだけなら良いが、Excelで開いたなら上書き保存はしないこと。

ExcelはCSVファイルを開いたとき、ちょっとしたお節介を働かせてくれて、CSVファイルのデータを変形させてしまう。

その代表が、先頭が「0」文字で埋められた数字のデータだ。
たとえばCSVファイル中で「0001」とあるデータは、Excelで開いたときには単なる「1」にデータが化けてしまう。

あるいは「15:12,24:12」というのをCSVファイルにして保存してみよう。
これは、Excelからは時刻データと勘違いされてしまう。

「15:12」の方はまだしも「24:12」の方は、Excelでは「1900/1/1 0:12:00」というとんでもないデータに化けてしまう。

他にも事例があるけど、それはまあいい。

とにかくこういうのを、そのままExcelファイルで上書き保存してしまうと、元々メモ帳で打ち込んでたのと違うデータに化けてしまい、紛い物のファイルになってしまう。

こういう風にデータを化けさせないようにExcelで開く方法も、一応あるので次回で取り上げるけど、正直かなり面倒な技なので私もあまり使わない。

だから絶対に、CSVファイルをExcelで開いたときには、上書き保存はしないこと。
読み取り専用というか、見るだけに留めておくこと。

システムで生成したCSVについて、「保存」ボタンと「開く」ボタンが出現するようなシステムもあるだろう。

そういうので間違って「開く」の方を押してExcelで開いたなら、そのExcelのままCSVを保存してはいけない。
「保存」ボタンの方でCSVファイルを保存しよう。

それでもCSVファイルを上書き保存したいか


じゃあ上書き保存しちゃまずいなら何で、CSVファイルはデフォルトでExcelで開かれる設定になってるかって、まあそれはMicrosoftがそう設定したからとしか言えないけどね。

CSVファイルを上書き保存するなと何度も書いたが、Excelで開いたときに上書き保存するのがまずいのであって、メモ帳とか適切なソフトで開いたのであれば、上書き保存しても良い

もちろん、ファイルに加えた変更内容じたいが正しいことが前提で。

そして、そんなことにならないのが本来最も好ましい。
上記で述べたように、システムとかで生成されたCSVファイルをそのまま使うだけにするのが、本来的なやり方だ。

とここまで書いたが、それでも皆、CSVファイルはExcelで扱うのが扱いやすいと思うのではないだろうか。

メモ帳でCSVファイルを開いても、Excelで開いたときみたいに綺麗にマス目ごとに区切られてくれないので、やりにくい。

CSVファイルをExcelみたいにマス目区切りで開いて、なおかつ編集・保存もしたいというニーズも、あるだろう。

そういう人にはCassava Editorとかemeditorといった、CSVへの対応機能を備えたテキストエディタなんかもあるので、試してみると良いだろう。

無料のテキストエディタ「サクラエディタ」に、CSVファイル編集の専用モードが追加されたので、その設定方法等についても別記事に書いた。

「サクラエディタ」でCSVモードを使ってCSVファイルを編集しよう

2019年9月14日

スポンサーリンク