• ベストアンサー

ExcelでのCSVファイルの読み込み

CSVを直接ダブルクリックしてExcelを開くと、住所の番地のみ入っているセルが、日付に自動変換されてしまいます。テキストファイルにリネームしてファイルを開きテキストファイルウィザードで変換すればよいのですが、エンドユーザーが使用するので、ダブルクリック一発で開かせたいです。何か良い方法はありませんか? ちなみにCSVはフィールド毎にダブルクォーテーションで囲っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

#2の補足です。 >WSHで、RegExp を使って行ってもよいです。(こちらで提供できます) あくまでも、Excelではない場合の仮定の話で、CSV排出時に、Excelで「プレフィックス」をつければよいのですね。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >エンドユーザーが使用するので、ダブルクリック一発で開かせたいです。何か良い方法はありませんか? それなら、そのCSVの提供側の問題だと思います。 私個人は、提供側が、そのために、負担を掛けていくと、提供側が、ネズミ算的に仕事が増えてしまうので、他人事でいわせていただくなら、それはユーザーにクリック方式はやめさせて、きちんとした方法でファイル・インポートさせたほうがよいと思うのです。あくまでも、ExcelはExcelとしての使い方としてです。 ただ、もし、完全に、Excelのみの提供なら、xlsなり、hmt(MHTML) やHTMLスタイルにすれば早いのではないでしょうか? >ちなみにCSVはフィールド毎にダブルクォーテーションで囲っています。 しかし、人為的にそこまでしているなら、必要な箇所に、プレフィックス(「'」)をつけて、CSVを提供すればよいのではないかと思います。Perl やSEDや、そうでなければ、テキストエディタで、正規表現でプレフィックスでつければ、一回で済みます。それが出来ないなら、WSHで、RegExp を使って行ってもよいです。(こちらで提供できます) 生のCSVから、直接ファイルをクリックして、Excelに、日付の変換のキャスティングがないようにするというのは、一般のExcelの設定には、私はないと思います。また、そのようなものを作ったところで、設定は、拡張子を換えるよりも遥かに難しいです。

  • x1va
  • ベストアンサー率26% (802/3006)
回答No.1

それがExcelの仕様なので不可能です。 テキストファイルウィザードを使うか、マクロを使うしかありません。 マクロはこんな感じ。 3列目を文字列として扱っています。 Sub test() Workbooks.OpenText FileName:="a:\test.txt", Comma:=True, _ FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 2)) End Sub

関連するQ&A