今回はCSVファイルを読み込む方法をご説明します。
VBAではなく手動で「外部データの取り込み」を使用して、読み込む方法です。
CSVをExcelファイルと同じように開くと俗にいう「データが壊れる」現象や、そもそもCSVとは何か?も併せてご説明します。
ただし、データに「0」から始まる文字列がない場合など、自動変換が行われても問題ないデータと認識できている場合は、そのままWクリックで開いても大丈夫かと思います。
VBAでCSVを読み込む方法については、次の記事をご覧ください。
1.CSVとは
CSVファイルはアイコンがExcelで、開いた時もExcel で開くためExcelファイルと勘違いされやすいですが、CSVファイルはテキスト形式のファイルです。
テキスト形式のCSVファイルとExcelファイルは何が違うのか、 詳細を書くと難しくなりますので、簡単に説明します。
CSVファイルは「001」などの数値も実際には文字列として扱われています。
ですが、Excelは書式という機能があり、読み込まれた瞬間に数値や日付などを自動的に変換してしまいます。
そのため文字列の「001」がExcelの自動変換で「1」という数値として変換されます。
逆にExcelファイルで一生懸命綺麗に装飾したファイルを、CSVファイルで保存すると全ての書式は消失します。
これが俗にいうExcelで開くとデータが壊れるという現象です。
2.CSVファイルを手動で読み込む方法
CSVファイルをVBAではなく手動で読み込む方法です。
ExcelのアイコンのCSVファイルをダブルクリックで開いた場合、上記の様に自動変換で壊れるデータがあります。
例えば「-」のない電話番号や郵便番号の先頭の「0」が消えるのが、まさにこれです。
そのためCSVファイルをExcelファイルに読み込むには次のように開きます。
次のようなCSVファイルを用意したので、こちらを手動で読み込みます。
データタブのテキストファイル
リボンのデータを選択して、外部データ取込の「テキストファイル」を選択します。
ダイアログボックスが開きますので、CSVファイルを選択して「インポート」をクリックします。
テキストファイルウィザード
テキストファイルウィザードが表示されますので、「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ(D)」を選択して、次へをクリックします。
次に区切り文字を選択します。
CSVファイルの種類によってカンマ区切りやタブ区切りが違いますので、データを確認してください。
わからない場合は順番に選んでみて、「データのプレビュー」が区切られたらそれでOKです。
区切り文字を選択したら次へをクリックします。
区切られた列の中で、「文字列」として出力したい列を選択してから、「文字列」をチェックします。
全ての列を文字列にする場合には、全ての列を選択してから「文字列」にチェックを入れてください。
注意として列を選択してから「文字列」にチェックを入れます。
この順番を間違えると文字列になりません。
最後に出力先を指定してOKをクリックです。
手動で読み込む方法は以上です。
3.CSVファイルを読み込む際の注意点
文頭でも説明したExcelファイルの様にそのまま、CSVファイルを開くとデータが壊れる場合がありますが、今回紹介した方法にも欠点があります。
もし仮に、区切り文字で指定した文字列内に、区切り文字と同じ文字が含まれるデータが存在した場合です。
もし「,」カンマ区切りを指定して、「10,000」のような文字列が存在した場合に、こちらも区切られてしまうという現象が発生します。
CSVファイルを取り扱う際は、上記のようなケースも多く存在するためご注意ください。