2015年2月24日

エクセルのセルの文字列が「######…」になる


Microsoft Excelのセルに長い文字列を入力すると「######…」と表示されます。これをCSVに保存すると値が「######…」に変わってしまいます。


セルに長い文字列を入力すると「######…」と表示されること自体には問題ありません。Excelではセルに表示しきれない場合にはこのような表示になることは普通です。
表示が変わるだけでデータとしては保持されていますので通常は問題ありません。数式バーを見るとちゃんと入力した文字が表示されています。

しかしながらこのデータをCSVに保存するとセルの値が表示されていたそのままの「######…」に変わってしまうのです。テキストに落とす時には表示そのままにテキスト化するのが仕様(そうしないと時刻や通貨などが分かり難くなる)なのでしかたがないのですが、場合によっては問題となります。
今回は外部業者から受け取ったExcelファイルをCSVファイルに変換するだけの工程だったので、これでは不具合が生じました。

この事象は他の人から指摘を受けたのですが、私のPCでは表示上も「######…」になりません。
Excelのバージョンは当事者が2007、私が2010です。バージョンによって振る舞いが違うようです。

検索すると次の記載が見つかりました。
http://support.microsoft.com/kb/410234/ja

セルの書式が「文字列」になっている場合に、256文字以上1024文字以下の文字を入力するとこの事象になります。
「文字列型」の保持ビット数を段階的可変にしていると予想されます。
いかにもバイト数っぽい数字なので半角で256文字ならば全角で128文字かと思い試してみましたが半角でも全角でも同じ256文字でした。

マイクロソフト的には「仕様」のようなのですが、Excel2010では直っているところを見るとバグの可能性が高いですね。

回避方法はセルの書式を「標準」にすれば良いとのこと。たしかにこれで解消しました。



0 件のコメント:

コメントを投稿