CSVファイルは、大体Excelに関連付けがされていてダブルクリックするとExcelで開きます。
Excelで中身を確認できるのはとても便利ですが、次のようになってしまい使いづらいことがあります。
・CSVの文字は「0001」なのに、Excelでは「1」となる
・CSVの文字は「2000-01」なのに、Excelでは日付の「2000/1/1」となる
この現象は数式扱いにすると回避できます。
テキストが変換されてしまうCSVの中身
"0001","2000-01"
Excelで開いた場合の表示
ゼロサプレスされるのと、勝手に日付変換されてしまいます。
テキストを数式扱いにしたCSVの中身
="0001",="2000-01"
Excelで開いた場合の表示
セルは数式の値でcsvの文字列がそのまま表示されます。
気をつけること
ただし、数式扱いにしなければ正しく表示される値でも、数式扱いにすると表示がおかしくなる場合があります。
おかしくなるのは、文字列中にカンマ(,)や改行( )がはいる場合です。
通常のCSV
"000,000,000","AAAAA
BBBBB"
Excel表示
正しく表示されます
数式に変更
="000,000,000",="AAAAA
BBBBB"
Excel表示
表示が崩れてしまいます。
この現象を回避するため、テキスト内のカンマと改行も数式で表現しておく必要があります
="000" & char(44) & "000" & char(44) & "000",="AAAAA" & char(10) & "BBBBB"
※カンマはchar(44) で、改行はchar(10)で表現しています。
Excel表示
最後に
テキストを数式扱いしたCSVは連携用途で扱えません、Excelでの表示用途に限定したやり方になります。
業務ユーザにCSVを配布した際にゼロサプレスされては困る、勝手に日付変換されたら困る項目に限定して数式扱いにするのがいいのかなと思います。