TTEditのマクロを作ってみた
TTEditのマクロをChatGPTに聞いて作ってみました。
最近のChatGPTは回答が向上しているらしいということで、それならコードを出力するのをやってもらおうかなという試みです。(マクロのコードの出力にChatGPTを使いましたが、デザインの工程に生成AIが使用されるわけではありません。)
TTEditの準備
マクロを使わなくても、以前のTTEditとOTEditの繰り返し作業を自動化する(HiMacroEx・Automator)の記事で書いたように、マウスとキーボードの記録ツールで作業する方が色々な操作に融通が効きます。用途で使い分けて下さい。
TTEditが32ビット版であるか確認する
[ヘルプ]-[バージョン情報]からバージョンを確認して下さい。V13.3.0以降~最新版であれば使えます。それ以前のバージョンでも『TTEdit 32ビット版』であれば使えます。(『TTEdit 64ビット版』ではマクロが使えません。)
【参考】武蔵システム:フォント・外字エディタ TTEdit のダウンロード
TTEditに公式にあるフィルタとマクロを追加する
フィルタは初期設定でも少し入ってますが、武蔵システムの公式で配布しているものがあるので、32ビット版フィルタをダウンロードしてTTEditの「Filter」フォルダ内(C:\Program Files (x86)\TTEdit\Filter)に追加しておきます。フィルタの拡張子は.dllです。
【参考】武蔵システム:TTEdit用プラグインフィルタ
マクロは[ツール]-[マクロ]の最初のクリックでマクロのサンプルがコピーされます。初期設定でユーザーの「ドキュメント」フォルダに入ってきますのでそのまま入れて下さい(C:\Users\ユーザー名\Documents\TTEditマクロ)。マクロの拡張子は.vbs (VBScript) または.js (JavaScript)です。
(マクロのサンプルがコピーされない人はWEBからダウンロードして下さい。【参考】武蔵システム:TTEdit マクロ )
TTEdit公式のフィルタとマクロを追加するとこうなります。フィルタは1文字単位の加工、マクロは連続処理ができます。フィルタを連続でかけるにはマクロからフィルタを呼び出せば連続でかけられます。マクロから仕上げ作業の「巻き方向を修正」などを連続でかけることもできます。[ツール]-[マクロ]で任意のマクロを選択して実行します。
余談)公式角丸フィルタは水平垂直な直角に対してしか動かないため、ほとんどの文字パーツは丸くなりません。角丸作業はIllustratorなど別のソフトで加工してからTTEditに持ち込んだほうが良さそうです。
TTEdit用自作マクロを作りました
ここから私の自作の話です。
TTEdit用マクロを作りました。無料・無保証。再配布NG。
TTEdit専用マクロです。OTEdit for Windows、OTEdit for Macでは使用できません。このマクロではネットワークアクセス・レジストリ操作は行いません。
使用方法のサポートはしません。おかしいなと思ったら多分マクロの方が間違っています。自分でChatGPTなどで改造して下さい。
注意!!) マクロ処理ではフリーズやフォントファイルが壊れて開けなくなるなどのリスクがあります。マクロの実行前に必ずバックアップ用に自作フォントファイルのコピーを保存して下さい。利用は自己責任でお願いします。
自作マクロの配布データ
SZ-TTEdit-macro20251017.zip
(アップデート履歴:2025/10/17:公開)
【配布内容の一覧】
SZ-■■マクロ保存先フォルダを開く■■.js
SZ-◎◎シフトJIS4桁を文字に変換◎◎.js
SZ-◎◎ユニコード4桁を文字に変換◎◎.js
SZ-◎◎テキストの重複削除◎◎.js
SZ-◎◎テキストをシフトJIS順に並び替え◎◎ .js
SZ-〇Y極大点を追加.js
SZ-〇オーバーラップ輪郭を削除.js
SZ-〇スライドショー.js
SZ-〇スライドショー注意文字.js
SZ-〇巻き方向を修正.js
SZ-オブジェクトにフィルタを連続適用.js
SZ-オブジェクトを位置揃え.js
SZ-オブジェクトを対応コピー.js
SZ-オブジェクトを文字列で削除.js
SZ-オブジェクトを文字列へコピー.js
SZ-オブジェクトを連番コピー.js
SZ-オブジェクトを連番削除.js
SZ-サイドベアリング一括設定.js
SZ-縦★-Y極大点を追加.js
SZ-縦★-オーバーラップ輪郭を削除.js
SZ-縦★-オブジェクトにフィルタを連続適用.js
SZ-縦★-オブジェクトを連番コピー.js
SZ-縦★-オブジェクトを連番削除.js
SZ-縦★-サイドベアリング一括設定.js
SZ-縦★-スライドショー.js
SZ-縦★-横書きから縦書きに対応コピー.js
SZ-縦★-巻き方向を修正.js
——–
SZ-◎◎文字の重複削除用-UTF-16 LE BOM.txt
SZ-◎◎文字の並べ替え用-UTF-16 LE BOM.txt
SZ-サイドベアリングユーザー選択用-UTF-16 LE BOM.txt
SZ-スライドショー注意文字表示用-UTF-16 LE BOM.txt
SZ-マクロのフォルダのフルパス指定用.txt
SZ-対応コピー用-UTF-16 LE BOM.txt
SZ-文字列コピー用-UTF-16 LE BOM.txt
SZ-文字列削除用-UTF-16 LE BOM.txt
ダウンロードと保存の手順
①ダウンロードした「SZ-TTEdit-macros_配布日時.zip」を解凍し、中身の「SZ-TTEdit-macro」フォルダを、ユーザーの「ドキュメント」フォルダ内のTTEditマクロのフォルダ(C:\Users\ユーザー名\Documents\TTEditマクロ)の中に入れてください。
※フォルダやファイルの名前を変えないで下さい。同梱の.txtも捨てないで下さい。場所や名前が違うと動作しません。
※(C:\Program Files (x86)\TTEdit\TTEditマクロ)の方には入れないで下さい。
②TTEditで[ツール]-[マクロ]、下の[マクロ保存先フォルダ]でマクロのフォルダ(C:\Users\ユーザー名\Documents\TTEditマクロ\SZ-TTEdit-macro)を指定し直して下さい。
TTEdit用自作マクロの使い方
マクロの実行前に必ずバックアップ用に自作フォントファイルのコピーを保存して下さい。
実行範囲を間違えた、マクロを途中で止めてしまった、などはよくある事です。複製保存を忘れずに。
①TTEditの[ツール]-[マクロ]、マクロを選択して[編集]。
マクロ(.js)のファイルが『メモ帳』などのテキストエディタで開かれます。
②コードの一部を書き換えて、上書き保存。
コード冒頭の//(ユーザー書き換え可能)の部分を探し、範囲などを書き換えて上書き保存して下さい。マクロファイル(.js)はエンコードがANSI保存でないとTTEditで動作しません。(選択肢にANSIが無い場合、「Shift JIS」や「SJIS」を選択して下さい。「UTF-8」などはNG。)
コード番号を指定する時は接頭語の0xを削除しないで下さい。
例)var START_CODE = 0x829F;
縦書き専用文字115文字は別のマクロ(SZ-縦★-)がありますので分けてマクロをかけて下さい。
マクロによっては同梱のテキストファイル(.txt)の書き換えと上書き保存も必要です。こちらはエンコードが「UTF-16 LE BOM」で保存しないと文字化けします。
③TTEditの[ツール]-[マクロ]、マクロを選択して[実行]します。
すぐに連続実行が始まります。マクロは処理のみでフォントファイルの保存は入ってませんので終わったら自分で保存操作をして下さい。
マクロの操作で困ったら
●テキストエディタ『VS Code』でマクロファイル(.js)を開きたい:
・初回は「このウィンドウで信頼されていないファイルを許可しますか? 」が出ます。そのまま開いて下さい。
・マクロファイル(.js)が文字化けして開かれます。画面下部のUTF-8をクリック-
「エンコード付きで再度開く(Reopen with Encoding)」→ 「Japanese(Shift JIS)」を選ぶ。文字化けが直ります。
●「マクロの内容が無効です」:
範囲番号などを書き換え保存した後にエラーが出る時は、記入した英数字が半角になっているか確認して下さい。全角で入力するとエラーになります。
●横書き全文字を処理したい:
TTEditではUnicodeの全範囲でマクロをかけて下さい。
自作フォントの収録文字はUnicode 0000~FFFFまででカバーできるものが多いと思いますが、フォントによってはFFFFを超えるものもあります。文字一覧パネルを[Unicode]にし、[設定]で[作成済み文字のみ表示]にチェック、スライダーを下まで下げてオブジェクトが存在する最後のコード番号を調べて下さい。
●マクロの中止について:
[ツール]-[マクロの中止]で中止できます。文字範囲が広い設定の場合、中止の処理終了ダイアログが出るまで1分程度タイムラグがあります。
●TTEditの強制終了について:
フリーズした時は、Windowsの強制終了ショートカットCtrl + Alt + DeleteからTTEditの終了をして下さい。黒画面になり、タスクマネージャーなどの選択肢と、右下に再起動などの電源アイコンが出ます。
●マクロで最後の一文字が処理されてない:
マクロを実行後に、文字一覧パネルを見ると最後の1文字が出来ていないように見えることがありますが、次の文字に移動などの動作が有った時にプレビューの更新がされるためで、処理はされています。文字一覧パネル[設定]で[プログラムがアクティブでない時は表示しない]にチェックを入れて下さい。マクロの終了ダイアログ時に文字一覧パネルのオンオフによってプレビューが更新されます。
●マクロが途中で止まる、遅くなる:
マクロの実行中に画面の遷移が止まって見えたり、急に遷移が遅くなることがあります。これは編集不可文字をバックグラウンドで文字数分移動しているためで、正常に実行中ですのでそのまま待っていて下さい。とくにコード番号が大きく飛ぶ箇所は2分近く止まって見えることがあります。(シフトJIS:00DF→8140など)
マクロを実行すると1文字ずつ遷移していくため、7000字位の処理で10分程度かかります。
●ところどころ処理されない:
TTEdit製ではないフォントでは、縦書き専用文字やサイドベアリング可変文字の定義範囲がTTEditと異なる場合があります。その場合、縦書き専用文字115字やスライダー有り文字以外は処理をスキップされます。縦書きでは文字一覧パネルの右上を縦書き専用文字にして文字コードをUnicodeにすると縦書きの全ての収録文字を確認できます。
《ツール系》
ツール系マクロはTTEditが起動していればフォントファイルが開いて無くても実行できます。マクロファイル(.js)内にユーザー編集箇所はありません。
SZ-■■マクロ保存先フォルダを開く■■.js
私の自作マクロでは、実行前にマクロのファイル(.js)だけでなく同梱のテキストファイル(.txt)も開いて編集するものがあり、マクロのフォルダを辿って探すのは面倒なので、TTEditからマクロ入りのフォルダを呼び出せるようにしました。
SZ-◎◎シフトJIS4桁を文字に変換◎◎.js(例:82A0→あ)
TTEditをテキストファイルの文字コード変換ツールとして使います。任意のテキストファイル(〇〇.txt)を選択し内容の4桁の数字をシフトJISで変換して文字列テキストファイルを出力します。ファイルの選択画面を開く際に、やや時間がかかりWindowsの黒いウインドウが一瞬出ますが仕様です。
SZ-◎◎ユニコード4桁を文字に変換◎◎.js(例:3042→あ) (例:U+3042→あ)
TTEditをテキストファイルの文字コード変換ツールとして使います。任意のテキストファイル(〇〇.txt)を選択し内容の4桁の数字をUnicodeで変換して文字列テキストファイルを出力します。ファイルの選択画面を開く際に、やや時間がかかりWindowsの黒いウインドウが一瞬出ますが仕様です。
SZ-◎◎テキストの重複削除◎◎.js(例:あああいいうえお→あいうえお)(例:あああいいうえお→うえお)
TTEditをテキストファイル変換ツールとして使います。同梱のテキストファイル「SZ-◎◎文字の重複削除用-UTF-16 LE BOM.txt」を読み取り、1文字単位で重複削除し、重複削除済テキストファイルを出力します。
出力結果は[重複削除(1回目のみ残す)]、[重複を両者削除]が出ます。削除された文字も振り分けされます。並べ替えはされません。
入力文字列で重複登録のシフトJISコードがある場合、∵∵∵(異なるシフトJISが3個)は∵∵∵(同一シフトJISが3個)と見なされ、重複処理されます。
【自作途中で未制作の文字一覧を得るには】
(作りたい一覧-自作作成済み=未作成文字)なので、2つをまとめてから重複を両者削除します。
【参考:TTEditの機能で文字一覧のテキストファイルを得るには】
TTEditでフォントファイルを開き、[ファイル]-[文字一覧を作成]。UnicodeまたはシフトJISを選択、作成済み文字のみのチェックをオン/オフ。自作フォント、インストール済みの参考フォントファイル、新規作成フォントファイル、どれからでも出力できます。※出力は横書き文字のみで、TTEditの縦書き専用文字115文字は含まれません。
SZ-◎◎テキストをシフトJIS順に並び替え◎◎ .js(例:おえういあ→あいうえお)
実際に自作する文字の量や順番を把握しやすくするために作ったマクロです。
TTEditをテキストファイル変換ツールとして使います。同梱のテキストファイル「SZ-◎◎文字の並べ替え用-UTF-16 LE BOM.txt」を読み取り、重複削除と1文字単位でシフトJIS順の並び替え、シフトJIS範囲外の振り分けがされ、並べ替え済テキストファイルを出力します。
出力結果は[シフトJIS順]、[シフトJIS範囲外(カンマ区切り)]が出ます。
入力文字列で重複登録のシフトJISコードがある場合、∵∵∵(異なるシフトJISが3個)は∵∵∵(同一シフトJISが3個)と見なされ、重複処理されます。
《仕上げ作業系》
SZ-〇Y極大点を追加.js
[編集]-[Y極大点の追加]を連続処理します。マクロの実行にSendKeysを使用するため、擬似的にキーボードCtrl+Alt+Yの連打状態となります。マクロの実行中に他の作業をしないで下さい。
SendKeysはY極大点が実際に追加できたかどうかに関わらず、一定の速さで遷移します。複雑なパスで空振りがある場合スピードを遅く設定して下さい。
マクロ終了後NumLockキーのアイコンが画面中央に残ることがありますが、通常数分で消えます。20分以上残り続けて邪魔な場合はパソコンを再起動して下さい。
マクロ改造用覚書)
ショートカットキーCtrl+Alt+Yは、SendKeysでは^%y(小文字 y)で記入。
Y極大点とは?)Illustratorなどで縦書きで表示する際、高さの計算はオブジェクトの輪郭サイズではなく、オンカーブ点かオフカーブ点の座標を使用するため、上辺に曲線のあるグリフは実際より大きく余白サイズを取られてしまいます。それを防ぐために上辺頂点(Y極大点)にオンカーブ点を追加します。
Y極大点は2点追加されることがあります)
(TTEdit[ヘルプ]-[目次]-[検索]タブに「Y極大点」と入力、からの引用)
「輪郭のY方向極大位置へ制御点を追加します。なお、曲線の極大位置であっても、オンカーブ点より下になる曲線部分には追加されません。輪郭の形が変わらないようにするため、制御点は数点追加されます。」
SZ-〇オーバーラップ輪郭を削除.js
[編集]-[オーバーラップ輪郭を削除]を連続処理します。Illustratorでいうところの[パスファインダー]-[合体]です。
SZ-〇巻き方向を修正.js
[編集]-[巻き方向を修正]を連続処理します。
オブジェクトに「巻き方向を表示」の赤い矢印が画面に出てない場合は[表示]-[巻き方向矢印を表示]をオンにして向きが確認できます。TTEditでは時計回りです。(参考:OTEditでは反時計回りで向きが逆です。)
ごく稀に、フィルタ太字の後など、込み入ったポイントあるものは巻き方向を修正が効いていないことがあります。ポイントを削除すると直ることが多いです。
《オブジェクトの処理系》
SZ-オブジェクトにフィルタを連続適用.js
[フィルタ]にある任意の項目を連続適用します。マクロの実行前に[フィルタ]-[環境設定]でフィルタの数値を設定して下さい。連続しての太字・細字・白抜き・変形・角立てなどの作業が可能です。コード内に記入するフィルタの名前はメニューに表記されているものと1文字でも違うとエラーになります。
【パスの巻き方向に注意して下さい】
・フィルタの実行前に「巻き方向を修正」マクロをかけてパスの向きを揃えておいて下さい。太字フィルタをパスが逆方向のものにかけると逆に細くなります。
・フィルタの実行後はパーツ同士が重なることがあるので「オーバーラップ輪郭を削除」「巻き方向を修正」などの仕上げ作業をして下さい。
マクロ自作メモ)
オブジェクトが2つあり片方が選択状態→片方だけにフィルタがかかる。両方選択状態または両方選択解除状態→2つにフィルタがかかる。マクロではフィルタ適用の前に選択状態を揃えるためUnSelectAll(選択解除)を入れています。
シフトJIS対応について)
シフトJIS範囲指定では重複文字がフィルタ効果の重ねがけになってしまうため、マクロはシフトJIS非対応にしました。TTEditとOTEditの連動している文字について。どうしてもシフトJIS(第一水準のみ処理したいなど)で連番でフィルタをかけたい場合はHiMacroExを使って下さい。
SZ-オブジェクトを位置揃え.js
オブジェクトをグリフ枠の中央に揃えます。揃え方は左右中央のみ、上下中央のみ、上下左右中央から選択できます。斜体や回転の変形フィルタの連続適用やグリフ幅を変更した後などに使えます。
《オブジェクトのコピー系》
SZ-オブジェクトを連番コピー.js
Unicode3000(全角スペース)を一時置き場として使い、オブジェクトを連番でコピーします。
コピー系マクロでは貼り付け方を選択できます。
「 削除してコピー(全選択削除→貼付)」
「 常にコピー」
「 既存グリフのみにコピー(空はスキップ)」
「 空グリフのみにコピー(既存はスキップ)」
連番コピー後にUnicode3000(全角スペース)のコピー元オブジェクトは削除されます。(直後にマクロをかけ直したい時は[編集]-[もとに戻す]で出てくると思います。確認ダイアログが出ている時はCtrl+Zが効かないのでマウスのみで操作。)
【連続して丸囲み文字にするには】
「 既存グリフのみにコピー(空はスキップ)」を使って丸オブジェクトを付け足し、丸囲み文字にできます。他にも任意のオブジェクトで白抜き文字にしたりできると思います(元データの縮小やU+3000に置いたパスの逆回転などの下ごしらえ、パスの巻き方向の修正などの仕上げは必要)。
シフトJIS対応について)
シフトJIS範囲指定では重複文字が重ね貼りになってしまうため、マクロはシフトJIS非対応にしました。TTEditとOTEditの連動している文字について。どうしてもシフトJIS(第一水準のみ処理したいなど)で連番コピーしたい場合はHiMacroExを使って下さい。
SZ-オブジェクトを文字列へコピー.js
部首パーツを一気にコピー配置するために作ったマクロです。連番でなくても文字列(鮭鯖鮫…)でコピーできます。
Unicode3000(全角スペース)を一時置き場として使い、オブジェクトを同梱の「SZ-文字列コピー用-UTF-16 LE BOM.txt」の入力文字列へ点在コピーします。貼り付け方法を「空グリフのみにコピー」を選択すればまだ作ってないところだけに部首を入れていけます。偏と旁を同居するようにするには「常にコピー」で普通にコピーします。
魚偏リスト(鮭鯖鮫…)のような情報はマクロに入れてませんので、自分で用意してもらう必要があります。文字列の用意については下にまとめてます。
コピーでばらまいた後にパーツ単位で削除や更新はできませんのでコピーは慎重に。ある程度デザインが固まってからマクロを使うと良いと思います。部首の数が少なければTTEditの関連文字一覧パネルで見ながらコピペで十分なので、部首の数が多いさんずい、きへん、にんべん、あたりでないとマクロのメリットを感じられないかも。
【文字リストをインターネットから検索してコピー:おすすめサイト】
①【参考】漢字辞典オンラインで魚の入っている漢字を構成検索し、コピー。
②【参考】改行・空白・タブ削除ツールで改行を削除。
③【参考】総合漢字チェッカー by attosoft.infoで第一水準・第二水準を抜き出す。魚や魯など形が違うものを自分で省く。
【文字リストをTTEditの文字一覧からコピー】
①[ファイル]-[新規作成]-[和文フォント][プロポーショナル]。ファイルは空で構いません。[ファイル]-[文字一覧テキストファイルを作成]。左下[シフトJIS]、「字形が作成されている文字のみ」のチェックを外す。テキストファイルを出力。
②メモ帳などで開けて、ここから丸囲み文字(①②③)、濁点(ばびぶべぼ)、部首別にある程度まとまっている第二水準漢字などを目視でピックアップ。
【文字リストをWikipediaからコピー】
【参考】ダイアクリティカルマークの一覧はWikipediaにまとまっています。
【参考】アキュート・アクセント
シフトJIS範囲にあるものはあまり数がないので目視でコピペでいけそうですが、もしUnicode範囲を制覇するならマクロがあったほうがいいかもしれない。アクセント記号の位置を大文字用と小文字用で高さを変えたいときはUnicode3000(全角スペース)に置いた時点で変えて、2回に分けてマクロをかけると良いと思います。
SZ-オブジェクトを対応コピー.js
主に記号領域の、文字を使い回しする部分を一気にコピー配置するために作ったマクロです。ひらがな・カタカナ・数字・アルファベットが出来たあたりでマクロをかけると、下の3種類のコピーが一気に処理されて未作成の部分が埋まります。
グリフとグリフの対応リストは同梱の「SZ-対応コピー用-UTF-16 LE BOM.txt」にサンプルを入れています。オブジェクトはそのままの状態でコピーするので、コピー後に手作業で調整して下さい。
SZ-オブジェクトを文字列へコピーマクロと似ていますが、コピー元/コピー先がUnicode番号を持つ単独グリフであることが必要です。
[INDEX_PAIRS](インデックス対応)では 同じ文字数同士でコピー出来ます。区切り文字は※。連番でないものでも大丈夫です。
123456789※①②③④⑤⑥⑦⑧⑨
あいうえおつやゆよわ※ぁぃぅぇぉっゃゅょゎ
アイウエオカキクケコ※アイウエオカキクケコ
株有代※㈱㈲㈹
半角英数と全角英数を同じデザインにする時も使えると思います。
[EXPAND_PAIRS] (展開対応)では1文字→複数文字でコピー出来ます。区切り文字は->。
か->が
ハ->バパ
A->ΑΛА
[AGGREGATE_PAIRS](集約対応)では複数文字を1文字に集約コピーできます。区切り文字は=>。
センチ=>㌢
平成=>㍻
kg=>㎏
集約対応コピーで漢字も作れるか?)
仕組み的には漢字の集約もできそうですが(魚+圭で鮭)、多分リストづくりの手間のほうがかかるので大変かと。頑張って対応リストを作っても、パーツの修正がその都度反映されたりしないので、利用数の多い部首だけを「SZ-オブジェクトを文字列へコピー」する位が現実的だと思います。
手順イメージ:第一水準まで漢字を作る→部首用の漢字をUnicodeの空き領域に置く。部首は広め狭めなど各5個程度ずつ必要(多分すごい数登録することになる)。部首以外の不要なオブジェクトを手作業削除し単独の部首の仮グリフとする。→集約リストを第二水準漢字文字数分作る(多分ものすごく大変)→集約コピーマクロをかける(ずらし設定をやめて同位置重ねにする)。
結局どれでコピーがいいのか?)
どのマクロでも作れます。たとえば濁点をコピーしたい場合(゛→ばびぶべぼ)。
・文字列コピー:全角のスペースに゛オブジェクトを置いてから(常にコピー)で文字列へ
・対応コピーの[EXPAND_PAIRS] (展開対応)(常にコピー):゛->ばびぶべぼ
・対応コピーの[AGGREGATE_PAIRS](集約対応):゛は=>ば、゛ひ=>び
文字数や文字同士のパネルの位置関係では普通にショートカットキーでコピペのほうが早かったりもするので、ケースバイケースで試して下さい。
SZ-縦★-横書きから縦書きに対応コピー.js
横書きで書いたグリフを、対応する縦書き専用文字に対応コピーします。横書きの小書きの「ぁ」→縦書きの小書きの「ぁ」のように対応するグリフがコピーされます。貼り付け方法を「空グリフのみにコピー」にすると未作成文字のみにコピーされます。
横書きのそのままの状態でコピーするので、後で縦書きに相応しいよう位置や回転を手作業で調整して下さい。単位記号の向き直しなど忘れそうなので注意。コピー後のグリフはそれぞれ独立しているので、互いにデザインの修正が反映されたりはしません。
縦書きのマクロはJIS順で処理しています。シフトJISではないので文字一覧パネルの表示やマクロのコード番号の指定で注意して下さい。
【参考】武蔵システム:縦書き専用文字
《オブジェクトの削除系》
SZ-オブジェクトを連番削除.js
オブジェクトを連番で削除します。Unicode / Shift-JIS 範囲選択可能。よく使うと思う。
SZ-オブジェクトを文字列で削除.js
オブジェクトを文字列で削除します。同梱の「SZ-文字列削除用-UTF-16 LE BOM.txt」に書込みできます。オブジェクトを文字列ヘコピーマクロで失敗したなと思った直後であれば同じ文字列で使えるかもしれないけども、グリフごとに全選択→削除するので、旁を残して偏パーツだけ削除などはできません。あまり使わないと思う。
《サイドベアリング系》
SZ-サイドベアリング一括設定.js
サイドベアリングをまとめて設定するマクロです。サイドベアリングのスライダーを手で移動させるのは大変なのでマクロでまとめて動かします。
・上下サイドベアリング=縦に組んだ時の余白
・左右サイドベアリング=プロポーショナル幅設定と横に組んだ時の余白
が設定出来ます。
上下サイドベアリング可能文字=483グリフ、左右サイドベアリング可能文字=1774グリフです。同梱の「SZ-サイドベアリングユーザー選択用-UTF-16 LE BOM.txt」で設定する文字を入力できます。
スライダーのないグリフ、オブジェクトが無いグリフは入力されても設定をスキップされます。
このマクロでは余白数値は上下で同値・左右で同値(=オブジェクト位置中央揃え)にしか設定できません。文字によっては左右で同値では無い方が縦書きの見た目が良いものもあります(「Jjしトレ」や濁点半濁点付きなど)。マクロ後、縦書きにしても違和感がないか実際に並べて再確認し、スライダーで手動で調整して下さい。([ファイル]-[インストール済みを開く]で他の日本語フォントを開くと余白の参考になります。)
サイドベアリング数値を「NO」入力で適用しない事ができるので、上下はNOで、左右のみ余白50などに設定することもできます。
【設定数値と余白数値のズレについて】
ひらがななど曲線のオブジェクトは、編集画面で表示される[表示]→[外接四角形を表示]の実際の余白数値がマクロの設定値より大きくなる場合があります。マクロの実行前に、オブジェクト端部(上下左右)に極大点を追加しておくと誤差が出にくくなります。手作業で[文字情報]から設定しても、マクロから設定してもこのズレは出ます。微差であれば、実際にはそれほどデザイン的には影響しないと思います。
【手作業で極大点を上下左右に追加するには】
オブジェクトを選択していない状態で、カーソルをオブジェクトの輪郭線上におき、右クリック。ポップアップメニューで[極点を追加]-[上/下/左/右/上下左右]を選択で極点が追加されます。(マクロでこの連続追加はできません。)
※マクロでは後からスライダーを最初の座標位置にまとめて戻すことは出来ません。
※文字によっては同種のものでもスライダーの有無がまちまちです。(例:㍻㍼㍽㍾はスライダーあり。㋿(U+32FF)はスライダー無し。)(例:①~⑳はスライダーあり。⓪(U+24EA)はスライダー無し。)
※漢字にはスライダーはありません。
【手作業でサイドベアリングを設定するには-[文字情報]】
編集画面で1文字ずつ設定できます。[設定]-[文字情報]。タブで[横書き]/[縦書き]。[サイドベアリングで設定する]にチェック、数値を入力。左右対象でない数値でも入力できます。フォントによっては横書きタブのみの設定です。
【手作業でサイドベアリングを設定するには-スライダー移動】
直接スライダーの移動で設定することもできます。スライドショー注意文字マクロではスライダー有りの文字だけをチェックしながら設定できます。
マクロ自作メモ)
サイドベアリング数値をマクロで取得した場合(マクロは非配布)、オブジェクトがある時は設定した余白値(100,100,100,100のような)になりますが、オブジェクトが無い状態では数値は以下のような半角用/全角用のスライダー座標を表します。
LeftSB,RightSB,TopSB,BottomSB
0,512,880,144
0,1024,880,144
※おそらくマクロでスライダーを座標指定で移動することは出来ません。マクロで指定出来るのはオブジェクト有り前提の余白数値のみです。
SZ-縦★-サイドベアリング一括設定.js
縦書き専用文字マクロです。文字一覧パネルの右上を[縦書き専用文字]に切り替えてください。縦書き専用文字では左右と上はスライダーがないため動きません。ボトムスライダーのみ設定できます。
初期状態で範囲は(JIS:0x2421:縦書き小書きのあ)~(JIS:0x2576:縦書き小書きのヶ)になっていますが書き換えできます。
※ボトムサイドベアリング可能文字=115グリフ(縦書き専用文字すべて)
SZ-〇スライドショー.js
グリフを連続して開けていきます。7000字位をゆっくり見ると30分~1時間かかります。マクロには一時停止/再開ボタンがないため、代わりに1000字おきなどで続行確認パネルが出るようにしました。続行確認の間隔はユーザー設定できます。
「空グリフも表示」「作成済みのみ表示」が選択できます。速度も選択できます。
【スライドショーで2つの字形を比較しやすい表示にするには】
テンプレートフォントはオブジェクトの背後に隠れてしまうため、[表示]-「プレビュー」ウインドウを横において1文字大きく表示してからスライドショーを実行すると2つを見比べしやすいです。このスライドショーマクロでプレビューウインドウが出てくるわけではないので、好みで設定して下さい。
マクロ改造用覚書)
「作成済みのみ」のピックアップに IsRegisteredCodeを使用しています。
(最後の保存時に未作成だったグリフが取りこぼされるため、 「作成済みのみ」選択時は実行前に保存推奨ダイアログを表示する。新規ファイルにオブジェクトを置き、未保存の状態では0グリフと見なされ、マクロが即完了します。)
SZ-〇スライドショー注意文字.js
サイドベアリングのスライダー有り文字(縦書き専用文字を除く)・JIS2004字形のみをスライドショーできます。続行確認パネルの表示中は、オブジェクトやサイドベアリングのスライダーを編集したり他のグリフを開けたりできるので、10字おき位で続行確認を出して止めながらの修正作業が可能です(ダイアログ表示中でもマウス操作可)。続行確認パネルは毎回画面中央に出るので、邪魔なら編集画面の方をずらして下さい。
スライドショー表示グループを選択できます。
1=上下サイドベアリング可変483字
2=左右サイドベアリング可変(プロポーショナル幅)1774字
3=JIS2004字形168字
4=JIS2004追加10字
「空グリフも表示」「作成済みのみ表示」が選択できます。速度も選択できます。
【文字一覧パネルで注意文字リストで表示するには】
マクロの実行の前に、文字一覧パネルの上の[設定]から、マクロフォルダに同梱している「SZ-スライドショー注意文字表示用-UTF-16 LE BOM.txt」を指定します。右上プルダウンを[通常]から[テキストファイルの文字]に変更するとテキストファイルの内容が表示されます。
・このときだけは、数文字ごとの頻繁な続行ダイアログのたびに一覧パネルが非表示/表示を繰り返すと画面の点滅が気になるため、文字一覧パネルの設定で「プログラムがアクティブでない時は表示しない」のチェックを外して下さい。
・スライダー可変文字は難しい記号などを含むので、サンプルフォントによっては表示されません。MS明朝では表示できます。スライダー可変文字をすべて埋める必要は無いので、シフトJIS範囲まで等自分で作らない文字を決めて下さい。
・ショートカットの「次の文字」(Ctrl+PageDown)はテキストファイルの文字順で動きません。
(※このテキストファイルは文字一覧パネルの表示用です。実際にスライドショーで遷移する文字グループは4桁の数字でマクロ内末尾に入力してあります。)
【参考にするフォントを統一するには】
JIS90字形/2004字形(N付きフォント)はどちらにするか自分で最初に決めておき、文字一覧パネル[設定]の「サンプルフォント」、編集画面の背景の[ファイル]-「-テンプレートフォント」、プレビューパネルの「他のフォントで表示する」も字形が同じものを選んでおくと混乱しないです。(関連文字一覧パネルのサンプルフォントは固定なので字形は無視すること。)
【参考】JIS2004だと何か得? 高機能?/デザインポケット[design pocket]
_______________
ここからは制作の余談です。
マクロの自作について VBScriptはいずれ使えなくなるらしい
TTEditで使えるフィルタは.dll、マクロは.vbs (VBScript) または.js (JavaScript)です。
でも、VBScriptはいずれ使えなくなるらしいです。知らずにマクロを一度.vbsで作ってしまったので、.jsに作り変えました。
「VBScript」は2027年頃にデフォルトで無効に ~非推奨化スケジュールが公開
.vbsから.jsに作り変えで出来なかった点。
・GetPoint2の座標取得ができない
・マクロの完了パネルと中止パネルを出し分けできない(文言を共通で「処理を終了」に変更)
・範囲や文字列をユーザーにInputBoxなどのダイアログの入力欄に入力してもらうことが出来ない(コードを開けてもらって書き換えに変更)
作ったけど配布しないマクロ、作れなかったマクロ
マクロの自作でチャレンジしたけど、配布にいたらなかったものの記録です。
グリフカウントマクロ(配布無し)
マクロは作れましたが、メモ帳でグリフ数は分かるので、同じものだなと。([ファイル]-[新規作成]-[和文フォント][プロポーショナル]。[ファイル]-[文字一覧テキストファイルを作成]左下[シフトJISまたはUnicode]、「字形が作成されている文字のみ」のチェックを外すと全文字リストを出力。)
マクロで文字リストを細かく分けてカウントすれば価値がでそうだけど、人名漢字や教育漢字などは更新があるので、文字リストの更新サポートが出来なそう。というわけであきらめました。
プロポーショナル幅確認マクロ(配布無し)
.jsで座標を取得できなかったのでマクロを作りませんでした。
TTEditに元々ある[ファイル]-「印刷」でプレビューもPDFも出せるので、目視で見れるから良しということにしました。プロポーショナル幅の枠が出るので、余白が確認できます。「印刷」項目にありますが、プリンター不要です。
・[印刷プレビュー]でTTEdit自体をプレビューウインドウとして使えます。ちょっと見るだけが出来て手軽です。キーボードのPageDownキーで次のページに移っていけます。
・[印刷]で実際に印刷はせずに、PDFの出力ができます。[プリンタの設定]で「Microsoft Print to PDF(無料、Windowsの標準搭載機能)」か「Adobe PDF(※有料版Acrobat Proが必要)」を選択しておく。
枠外オブジェクトを検索マクロ(配布無し)
枠外のゴミオブジェクトやはみ出してるオブジェクトの検索マクロを作ろうと.vbsで一度完成しましたが、GetPoint2の座標取得でつまづき、.jsに変換できませんでした。
前述同様、TTEditの「印刷」で目視でゴミやはみ出しがないか確認すれば良しということにしました。
スライドショーでも目視確認できます。編集画面では[表示]-[外接四角形を表示]で4辺の余白数値が出るので、グリフ枠からはみ出しがあると余白数値が赤くなります。グリフ枠の周囲にゆとりを持たせて表示して下さい。
多重コピぺ検出マクロ(配布無し)
「オーバーラップ輪郭を削除」で同一化できない、完全同一座標の同一オブジェクト(およびコピペのズレ付与オブジェクト)の検索マクロを作り.vbsで一度完成しましたが、GetPoint2の座標取得でつまづき、.jsに変換できませんでした。
部首・共通パーツ削除マクロ(配布無し)
.jsであれこれ試したのですが、TTEditは基本的に全選択-削除の動きになっていて、パーツの一部を選択状態にピックアップして削除することが難しく、無理でした。同居オブジェクトがあるグリフで、単純な丸オブジェクトを選択状態にして削除、というので実験したところ削除はできるが一部のポイントの残骸が残ったり、同居オブジェクトのパーツが崩れたりして上手く行きませんでした。これができればパーツや部首単位で置き換えや更新が出来るかなと思っていたのですが残念。
この後の予定 OTEdit for Windows用マクロも作る予定
あったら面白いかなと思って色々作りましたが、まだフォント制作で使ったわけではないので実用的ではないかもしれません。
配布したTTEdit用マクロは、OTEdit for Windows用マクロも準備中です。CIDがあるので全部は変換できなそうです。(OTEdit for Mac用はマクロが非対応なので作りません。)
※2025/10/17 マクロは問い合わせやサポートNGにする予定ですが、公開1ヶ月くらい不具合報告のみ受け付けます。すぐに修正は出来ないかも。※