2012年7月19日木曜日

Excel 2010×2003:テキストボックスの文字色がズレる

そう言えばWindows 8 RPにOffice 2013入れてみたのですが、まだ全然いじってません。とりあえず白っぽくて見づらいな(特にリボン)と思いました。
新機能がいろいろ気になるので、時間がある時に遊んでみたいと思います。

さて、ちょっと変なことがあったので。
下図はExcel 2003上のテキストボックスに文字を入れたところです。半角英字の部分だけ色を変えました。


ここで半角英字の前に改行を入れ、保存して閉じます。


このファイルを2010で開いてみたところ。


特に問題ありません。何も変更を加えず、上書き保存だけして閉じます。
ところがこれを再び2003で開いてみると、おかしなことになってました。


英字部分の文字色が途中まで黒に戻っています。2010で開くと元の通りで変化はありませんでした。

調べてみたところ、常にこのような現象が起きるわけではないようでした。たぶん条件としては、

  • 全角文字+半角文字(2バイト文字+1バイト文字?) の組み合わせ
  • 半角文字の前に改行
  • 半角文字のみ文字色を変更

ということみたいでした。改行がポイントっぽいところがおもしろいなと思いました。
初めに2010で作った場合、このような差異は発生しないようでした。

翌日追記:
ふと、Excelのメニューの文字列にはところどころにU+200B(ゼロ幅文字)が挿入されていることを思い出しました。あれってもしかして、表示上のなんらかのバグを回避するためのものなのでは・・・まぁわかりませんけど。

試しに上のケースで半角文字の前にゼロ幅文字を入れてみました。
U+200Bを入れると2010でもズレて、その後2003で開くとさらにズレてました。
ところがU+200C(同じくゼロ幅文字) を入れてみたところ、この現象は起きなくなりました。実際ちょっと困ってたのでこれで解決です。仕組みは不明なままですが、実に興味深いので覚えておこうと思います。

0 件のコメント:

コメントを投稿