みなさんこんにちは。いいんちょです。
今回も日常業務の一コマから。
宛名データ等の処理をしていてよくあるのが外字を含むデータ。
外字とはフォントファイルに含まれていない文字で、自分のパソコンで作成し登録しておける文字のことです。Windowsでは標準で付属している外字エディタ等で作成できます。
外字は作成したパソコン上でしか表示できないので、お客様のデータに外字が含まれていると弊社のパソコンでは「・」(中黒)となってしまいます。
たとえばこの文章の場合、「あ」に濁点が外字です。外字が登録してあると登録した文字が表示されます。
外字が登録されていない場合は「・」で表示されます。
対処方法としては外字フォントを提供していただく、外字の見本を頂き弊社で作成する、外字を表示可能な文字に置き換えるなどがあります。
そんな外字ですが、登録されていないと見た目では外字なのか中黒なのか分かりません。ではどうすれば判断できるのか?今回は簡単にExcel関数で外字判断ができる方法をご紹介します。
まずWindowsでテキストとして表示されている文字には全て文字コードという名の数値が割り振ってあります。その割り振り方がJISであったり、ASCIIであったり、UTFであったりと・・ただ、この辺りの説明を始めると樹海に迷い込むのであえてふれません。^^;
外字であっても同じことで見た目同じな・(中黒)も・(外字)も違う文字コードが割り振ってあります。文字コードはWindowsならIMEパッドなどで確認することも可能です。
つまりExcelで文字の文字コードが分かれば、その文字コードが外字領域にあるかを確認するだけで外字を特定することができるのです。
ではまず文字コードを表示する関数を探してみましょう。EXCEL関数で用意されているのはCODE関数、UNICODE関数の2種類、CODE()がJISコード、UNICODE()はそのままユニコードを返します。現在WindowsはUnicode文字を使用しているのでUNICODE関数を使用します。
ひらがな「あ」の文字コードを取得するとこんな感じ。
※16進数表示にするためDEC2HEX関数を使用しています。
適当に他の文字のコードも取得してみます。
見た目が同じ4、5、6が違う文字であるのは一目瞭然ですね。
さて、UNICODEで外字と言われる文字は私用領域にあり、E000~F8FFまでとなっています。
あとは出力された文字コードがその領域にあるかを確認するだけ。
※上関数では文字コードが外字領域にある場合「外字」の文字を表示します
5、6が外字であることが分かります。
これを応用してマクロやアドイン等を作成すれば膨大なデータの中から簡単に外字を発見するプログラムを作ることも可能です。
ただ、フォントの問題は外字だけでは無く、サロゲートペアやJIS2004異字体、IVS(Ideographic Variation Sequence)など色々と考慮しないといけないことも多く、弊社プリンタやOS、レイアウトソフトの対応状況を確認しながら、お預かりしたデータが化けること無く出力されるために日々試行錯誤しています。
そんなトヨトモの宛名印字、お困り事などございましたら営業までご相談ください。
以上、いいんちょでした。
この記事を書いた人
- トヨトモHP管理委員会の委員長を任されています、いいんちょです。みなさんにトヨトモの魅力を知って頂けるよう、商品情報から活動報告まで、肩の力を抜いて読んで頂けるブログを目指します。
この投稿者の最近の記事
- 雑記2024年4月30日大物を狙ってみる
- 雑記2023年2月27日読めなかったQRを検証してみる
- 雑記2022年7月22日Excelはなかまになりたそうにこちらをみている
- 雑記2021年9月27日ラベルデザインソフトを作成してみる