ITサポーターTsuchida

VBA Stepup5

第5章 CSVファイルとは

ExcelのVBAで自動実行する際に最も有効と思われるのが、CSVファイルの取込です。最近では他社とのやり取りのデータやインターネットのサイトからダウンロードしたデータなどに使われます。

そもそもCSVファイルって何?と思われる方がいらっしゃるかもしれません。CSVファイルは、CSV(Comma Separated Value)形式のファイルのことで、カンマ区切りのテキストファイルのことです。テキストファイルとは文字列だけデータで、CSVデータは文字列を項目ごとにカンマで区切った形式のことで、CSVデータの形式のファイルのことをCSVファイルといいます。

CSVファイルをExcelで開くとカンマごとに列で分けてくれます。そのため多くの人がCSVファイルをダブルクリックしてExcelが開くから、Excelのファイルと勘違いしています。CSVファイルはExcelデータではなくカンマ付きのテキストデータのCSVデータなのです。

私のPCのワイヤレスのログのCSVファイルです。

CSVファイルのデータイメージ

Excelで開いたイメージ

CSVファイルは非常に昔から使われていて、多くのアプリケーションでも読み込める汎用性の高いデータです。私が汎用機やオフコンで仕事をしていたころに既にパソコン送りのデータには固定長データかCSVデータを選択していたくらいです。

異なるアプリケーション間のやり取り以外に、Excelのバージョンにも左右されないので、相手の会社のExcelのバージョンを気にすることはありません。

ただ、この便利なCSVファイルですが、Excelに取り込む際にやや厄介なことがあります。

代表的なものとして、伝票番号や部門番号のように、数字のコードの先頭に0がついているような場合、Excelは勝手に数値データとみなして、コードの先頭にある0を消してしまいます。これはCSVファイルをExcelに取り込む際に必ず問題になる現象です。このような場合は、VBAでプログラミングするときに、セルの表示形式を文字列にしてから、数字のコードを代入します。

そもそもCSVファイルはカンマ区切りのテキストですが、文字列はダブルクォーテーションで括り、数値はダブルクォーテーションで括らないという規則がありました。ただ、Excelから出力したCSVファイルは、文字列でもダブルクォーテーションで括らないとか、サーバのデータベースで出力したものは、表示形式としてカンマ付き数値をダブルクォーテーションで括ったりとかで、CSVファイルも様々だったりします。実際のCSVファイルがどのように作成されているかを、Excelに取り込む前にメモ帳などを使って確認する必要があります。

この章はCSVファイルの一般的な説明にとどめます。 次の章からはCSVファイルの単純な取込み方から紹介します。