VBAでCSVファイルを取り込む方法1/2

CSVファイルというと何か決まったフォーマットがあるようにも思えますが、実は自由なフォーマットというか、公的に決まった形式があるものではないようです。

CSVファイルの典型的なパターン

CSVファイルとしては、よくあるケースとしては、カンマ”,"区切りというところでしょうか。

CSVファイルのパターンは区切り文字だけではない

「カンマ区切りでなければ、他の文字で区切るパターンもあるよね」と思っただけのあなたは、CSVファイルを読み込むことはできません(w)。CSVファイルの構成パターンには、区切り文字の他に「行区切り文字」も考慮しなくてはいけません。

行区切り文字としては改行コードが使われることが多く、vbCRLFが典型的ですが、vbCRまたはvbLFなども考えられます。ちなみにvbCRLFは2文字ありますので、取り込み時には要注意です。

CSVファイルの取り込み時は、改行コードに注意

では、区切り文字と行区切り文字だけを考慮すればよいかというと、そうではありません。区切り文字で区切られたデータの中に「改行コード」が含まれる場合があります。

単に「改行コード」を行の区切りと判断するプログラムを組んでしまうと、データの中の「改行コード」が「行区切り文字」と一致する場合、行の判別を誤ることになります。

これを回避するためには、1つ1つのデータを区切り文字の他に、"(ダブルクオーテーション)などで囲い(囲い文字)、データ中の改行コードが「行区切り文字」とは違うということを識別する必要があります。

また「改行コード」の他、データ内の「区切り文字」と同じ文字がデータ内に含まれている場合、区切り文字と判別しないためにも囲い文字が必要になります。

CSVファイルの形式は自由ですので、囲い文字を使うのか、使わないのかを確認する必要があります。

CSVファイルのパターンまとめ

まとめると、次になります。

・CSVファイル(形式)には定められたものはなく、どのようなCSVファイルを使うのか予め確認する必要がある

・CSVファイル(形式)を確認する際は、区切り文字の他、行区切り文字、囲い文字の有無を確認する必要がある。

VBAではどのようにコーディングすればよいか

VBAでは、インターネット上で検索してすぐ出てくるような方法ではなく、上記を踏まえてバイナリーで取り込んだうえで、CSVファイルの形式に応じて処理する必要があります。詳しいコードはまた別途記事にしたいと思います。

この記事が気に入ったらサポートをしてみませんか?