CSVファイルの"-"をハイフォンとして読ませたいが?

Question 33.5   Previous Next
はじめまして、ど素人ですが宜しくお願いします。(excel97使用)
顧客IDを ”-” で区切っている為、CSVデータを開く時 “1900-1-1” が “1999/1/1” として読み込まれてしまいます.
アプリケーションを開く時に“-”を日付として読ませないようにする方法はありますか?
Answer   Copyright (C) 2000.10.25 永井善王
ひょっとすると、VBAマクロの質問ではなくて、Excelの通常の使い方を聞いてみえるのでしょうか。

ファイルを開く CSVは、[ファイル]メニュー[開く]とクリックして、表示されたダイアログボックスの「ファイルの種類」で右図のように選択し、「ファイル名」を指定して [OK]ボタンをクリックすれば開くことができます。
ここまでの操作は、テキストファイルならば拡張子が CSV であろうと、TXT であろうと、または PRN であろうと同じです。

しかし、その後のExcelの動きは、CSV と TXT とでは異なります。
CSV の場合は自動的に開いてくれて、質問文にあるとおり、"1900-1-1" が "1999/1/1" になってしまいます。何故そうなるかですが、各フィールドのデータ形式をユーザーが指定する機会がないので、Excelが[G/標準]として読み込んでいるのではないかと思われます。

どうしようもないのでしょうか。
試しに、拡張子が TXT のテキストファイルを開いてみると、上図の[OK]ボタンをクリックした後で、テキストファイルウイザードが表示されます。
カーソル位置に注目
1/3画面で 「元のデータの形式」、

2/3画面で 「フィールドの区切り文字」、

3/3画面で 「区切ったあとの列のデータ形式」を指定することができます。
黒く反転した部分に注目 左図のカーソルに注目しましょう。
列のデータ形式として文字列を選択しています。
黒く反転した部分に、"1900-1-1" と表示されています。

この状態で [完了]ボタンをクリックすれば、あなたの希望にそった形で開かれるはずですね。

「私が開きたいのは CSVです、TXTではありません」 と言わずに、「CSVファイルなんだけど、TXTファイルとして開くことはできないだろうか」 と考えましょう。
頭を柔らかくしてから、
CSVファイルを文字列として開きたいが? のページの後半を読んでください。

 

Excel VBA Macro