MS Access Tips/Sample and VBA and Blog customize etc...

Access2013の「リッチテキスト形式」で文頭が記号の場合のバグ?

フォーム上の「文字書式」が「リッチテキスト形式」のテキストボックスで、文字を入力後テキストボックスからフォーカスを移動すると、フォントサイズが異常に大きくなるという症状が出る場合があります。

症状がでる条件は、先頭の文字が記号(○▼□等)、数学記号(≒∑≦等)の時です。

また、Access2013 では症状が出ますが、Access2010では出ませんでした。

不具合だと思われますので、今後の更新で改善されるといいのですが、とりあえずの対処法を考えてみました。

リンク無し画像

難易度:

バグの発生条件

Access2013のリッチテキストボックスの表示について - マイクロソフト コミュニティ

上記の質問で詳細が報告されていますが、まとめますと、

テキストボックスの先頭文字が全角記号のとき、フォーカスがテキストボックスから外れるとフォントサイズが異常に大きくなります(おそらく200ぐらい)。

その時の記号のフォントは「Segoe UI Symbol」になっています。別のフォントに変えようとしても強制的に「Segoe UI Symbol」に戻ります。

また、先頭が数学記号の時は、フォントは「Cambria Math」になり、同様の症状が出ます。

当方で検証して上記の2つは確認しましたが、他にもあるかもしれません。もし、見つけたら報告してください。

症状の確認

「リッチテキスト形式」のテキストボックスの更新後処理を下記のように記述しておいて、

○あいうえお

と入力してフォーカス移動するとイミディエイトウィンドウに下記のように出力されます。

∑あいうえお

と入力すると、

バグ対処関数

標準モジュールに下記の関数を作成します。

原理としては、
先頭文字が、全角記号、数学記号のときにフォントが Segoe UI Symbol または Cambria Math になり、症状がでるので、
先頭文字のフォントが、Segoe UI Symbol または Cambria Math のときは、先頭にソフトハイフン文字(実体参照 ­)を挿入します。

これで先頭文字が、記号でなくなるので症状はでません。

ソフトハイフン文字は、単語の途中で折り返される場合につくハイフンですが、折り返されない場合は表示されません。先頭になる場合は当然折り返されないので、文字としては存在するが表示されないことになります。

ソフトハイフン - Wikipedia

使用法

「リッチテキスト形式」のテキストボックスの「更新後処理」欄に

=RichTextBugFix()

と設定します。
「更新後処理」に [イベント プロシージャ] が設定してある時は、イベントプロシージャから下記のように関数を呼び出します。

2014/04/10追記: 4月8日付の更新で解消されたようです。最新バージョンは、15.0.4605.1003 です。[ファイル]-[アカウント]の[更新プログラム]で確認できます。最新バージョンになってなかったら、[更新オプション]-[今すぐ更新] をクリックして実行してください。

Office更新プログラム


拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/411-31eea069
該当の記事は見つかりませんでした。