windows
アイキャッチ 猫

今回は、外字(ユーザー定義文字)の作り方と、インポート・エクスポート方法を紹介します。

外字とは

外字とは、文字コードやフォントデータなどに含まれていない文字で、
日本で言う外字は、主にJIS規格の文字コード(JIS X0208)に含まれない文字を指します。
例えば、以下のような旧漢字ですね。
東洋堂:外字(旧漢字)一覧表

外字をパソコンで使用するには、
・企業や個人が作成したフォントをインストール
・自分で外字を作る(ユーザー定義文字)
に分けることができます。

今回は2つ目の、ユーザー定義文字の作り方を紹介します。

外字の作り方

まず、以下の手順で外字エディターを開きます。

1.キーボード左下の「Windowsマーク」+「R」を押し、ファイル名を指定して実行
2.「eudcedit」と入力してOK

もしくは

1.画面右下のスタートボタンの隣に検索窓があるので、そこに「外字エディター」と入力
2.外字エディターをクリック

以下のように外字エディターが開きます。

初期画面としてコードの選択が開きますので、
使用したい文字コードを選択し、OKを押します。
(今回の例だと、文字コードF041を外字にします)

すると、以下のように格子状のエディタが開きます。
あとは絵を描くように、マウスやペンタブで文字を作成します。

試しにこんな絵をかいてみました。

外字を書き終えたら「Ctrl+S」で上書き保存し、外字エディターを閉じます。

さて、うまくできたでしょうか。
Wordを開いて確認します。

今回は、F041を外字としましたので、「F041」と入力し「F5」キーを押して変換します。

うまく変換候補に外字がでてきました。

ばっちりですね♪

外字ファイルはどこにあるか

前項で外字を作成しましたが、どちらに保存されているか紹介します。
外字ファイルの場所は、次項で説明する外字のインポート・エクスポートをする上で知っておく必要があります。

外字は以下の外字ファイルに格納されています。
EUDC.TTE:外字フォント。外字データを格納
EUDC.EUF:外字エディター設定ファイル。外字フォントの管理情報を格納

これらの外字ファイルですが、フォントフォルダに格納されています。
ただ、フォントフォルダを以下のようにエクスプローラーで見に行くと、見当たりません。
(C:\Windows\Fonts)

なので、スタートボタン→Windowsシステムツールから、
コマンドプロンプトを開き、以下のコマンドをいれると確認できます。

dir /s C:\Windows\Fonts\eudc.*

このように、外字ファイルが見つかりました。

 C:\Windows\Fonts のディレクトリ

2021/02/27  19:10            40,074 EUDC.EUF
2021/02/27  19:10            78,412 EUDC.TTE
               2 個のファイル             118,486 バイト

外字のインポート・エクスポート方法

前項の外字ファイルのインポート・エクスポート方法を紹介します。

どちらにしても、
まずコマンドプロンプトを「管理者として実行」して開きます。

インポート

インポートの場合、コマンドプロンプトで、以下のコマンドを実行します。

ren C:\Windows\Fonts\eudc.tte eudc_old.tte
copy /Y C:\Fonts\eudc.* C:\Windows\Fonts

例として、「C:\Fonts\」に入れた外字ファイルをインポートします。
結果、以下のようにうまくコピーできました♪

C:\WINDOWS\system32>ren C:\Windows\Fonts\eudc.tte eudc_old.tte

C:\WINDOWS\system32>copy /Y C:\Fonts\eudc.* C:\Windows\Fonts
C:\Fonts\EUDC.EUF
C:\Fonts\eudc.tte
        2 個のファイルをコピーしました。

なお「ren」でリネームをかけていますが、バックアップ目的ではなく、
リネームせずコピーコマンドを実行すると、
「要求された操作はユーザー マップ セクションで開いたファイルでは実行できません。」
とエラーが出るからです。詳しくは後述します。

エクスポート

エクスポートの場合、コマンドプロンプトで、以下のコマンドを実行します。
例として、「C:\Fonts\」に外字ファイルをエクスポートします。

copy /Y C:\Windows\Fonts\eudc.* C:\Fonts

結果、以下のようにうまくコピーできました♪

C:\WINDOWS\system32>copy /Y C:\Windows\Fonts\eudc.* C:\Fonts
C:\Windows\Fonts\EUDC.EUF
C:\Windows\Fonts\EUDC.TTE
        2 個のファイルをコピーしました。

エラー事例:「要求された操作はユーザー マップ セクションで開いたファイルでは実行できません。」と出た場合

EUDC.TTEをコピーして上書きしようとすると、
要求された操作はユーザー マップ セクションで開いたファイルでは実行できません。」と出ます。
EUDC.TTEは外字データの入っているファイルなので、何かしらのソフトで掴んでいるため、と想定されます。

このようなエラーがでます。

C:\WINDOWS\system32>copy /Y C:\Fonts\eudc.* C:\Windows\Fonts
C:\Fonts\EUDC.EUF
C:\Fonts\EUDC.TTE
要求された操作はユーザー マップ セクションで開いたファイルでは実行できません。
        1 個のファイルをコピーしました。

なので、前述のインポート方法に書いたように、
一度リネームしてあげる必要があります。

エラー事例:「アクセスが拒否されました。」と出た場合

例えば、コマンドプロンプトを管理者権限で開かずコピーコマンドを実行したときなど、
Fontsフォルダのデータをコピーもしくは更新しようとすると、
アクセス権限の関係で「アクセスが拒否されました。」と出ます。

このようなエラーです。

C:\Users\XXXX>copy /Y C:\Fonts\eudc.* C:\Windows\Fonts
C:\Fonts\EUDC.EUF
アクセスが拒否されました。
C:\Fonts\EUDC.TTE
アクセスが拒否されました。
        0 個のファイルをコピーしました。

その場合、2つの対処方法があります。

1.コマンドプロンプトを管理者で開き、コピーする

インポート・エクスポート方法にもあったように、
コマンドプロンプトを管理者で開いてコピーする方法です。

2.「cacls」コマンドで、ユーザーに権限を与える
フォントフォルダ全体にユーザー権限を与えることでアクセスできるようにします。

これをするメリットとして、以下のコマンドを一度だけ管理者で実行しておけば、
2回目からはユーザー権限でもコピーできるようになります。
管理者ではないユーザーに共通のフォントファイルを定期的に更新したい場合など有効かと思います。

cacls C:\Windows\Fonts /e /p XXXX(ユーザー名):F

このように権限が変わり、コピーできるようになります。

C:\WINDOWS\system32>cacls C:\Windows\Fonts /e /p XXXX(ユーザー名):F
処理ディレクトリ: C:\Windows\Fonts

ユーザー名が分からない場合は、コマンドプロンプトで「whoami」と入力してみてください。

最後に

今回は、外字(ユーザー定義文字)の作り方と、インポート・エクスポート方法を紹介しました。

外字作成:外字エディターを使って作成
インポート:

ren C:\Windows\Fonts\eudc.tte eudc_old.tte
copy /Y C:\Fonts\eudc.* C:\Windows\Fonts

エクスポート:

copy /Y C:\Windows\Fonts\eudc.* C:\Fonts

外字作成は、やり方さえ知っていれば簡単にできますので、良かったら試してみてくださいね♪
(どちらかといえば運用が大変……)

ご訪問ありがとうございました! それでは。