数字が数値。エクセルのバグ?

in

Excelでcsvファイルを取り込むには、OpenTextが便利なんだけど"数字"が数値になってしまうのがいただけない。これを回避する手段としてFieldInfoがあるわけなんですがこれがうまくいかないことがあります。例えば、

Workbooks.OpenText Filename:="c:¥abc.csv", StartRow:=1,
  DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
  Tab:=False, Semicolon:=False, Comma:=True, Space:=False,
  Other:=False,FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 1))

こんなコードは間違いないはずなんですが、やっぱり"0001"は1になってしまう。色々、調べてみたけれど原因はわからず。まあ、めずらしくもないバグなんですが今日、ひょんなことから解決しました。

Workbooks.OpenText Filename:="c:¥abc.txt", StartRow:=1,
  DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
  Tab:=False, Semicolon:=False, Comma:=True, Space:=False,
  Other:=False,FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 1))

先のコードとの違いはどこ?ちょっと気づかないでしょ。なんと、取り込むファイル名の拡張子を変更したらちゃんと"0001"になりました。なんだかなぁ。拡張子の関連付けなんかと関係があるのかもしれませんが(僕の環境ではcsvはエクセルに関連付けしていません)やっぱバグだよなぁ。くだらないことだけど解決してスッキリです。 (Excel2000環境です。)

この記事のトラックバックURL:

http://hippos-lab.com/blog/trackback/237

返信