TTEditのマクロを作ってみた
2025/11/24 フォント フォント作成の効率化, 無料フリー素材

TTEditのマクロをChatGPTに聞いて作ってみました。
最近のChatGPTは回答が向上しているらしいということで、それならコードを出力するのをやってもらおうかなという試みです。
(マクロのコードの出力にChatGPTを使いましたが、デザインの工程に生成AIが使用されるわけではありません。)
TTEditの準備
その前に:マクロを使わなくても、以前のTTEditとOTEditの繰り返し作業を自動化する(HiMacroEx・Automator)の記事で書いたように、マウスとキーボードの記録ツールで作業する方が色々な操作に融通が効きます。用途で使い分けて下さい。
TTEditが32ビット版であるか確認する

TTEditで[ヘルプ]-[バージョン情報]からバージョンを確認して下さい。V13.3.0以降~最新版であれば使えます。それ以前のバージョンでも『TTEdit 32ビット版』であれば使えます。(『TTEdit 64ビット版』ではマクロが使えません。)
【参考】武蔵システム:フォント・外字エディタ TTEdit のダウンロード
TTEdit公式からフィルタを追加する

フィルタは初期設定でも少し入ってますが、武蔵システムの公式で配布しているものがあるので、32ビット版フィルタをダウンロードしてTTEditの「Filter」フォルダ内(C:\Program Files (x86)\TTEdit\Filter)に追加しておきます。フィルタの拡張子は.dll(Dynamic Link Library)です。
【参考】武蔵システム:TTEdit用プラグインフィルタ
TTEditにマクロを追加する

マクロは[ツール]-[マクロ]の最初のクリックで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-macro-20251124.zip
(アップデート履歴:)———————————————-
2025/10/17:公開
2025/11/24:OTEditマクロの公開にあわせて色々改良したので、丸ごと入れ替えて下さい。変換系マクロが文字化けしにくくなりました。テキスト整形マクロで任意のファイルを指定できるようになりました。改行マクロとオブジェクト重複と枠外検出マクロを追加しました。文字列コピー用と削除用のテキストファイルを共用できるようになりました。その他細かい修正あり。
————————————————————————
【配布内容の一覧】
SZ-■■マクロ保存先フォルダを開く■■.js
SZ-◎◎テキスト整形-1文字で改行◎◎.js
SZ-◎◎テキスト整形-シフトJIS順に並び替え◎◎.js
SZ-◎◎テキスト整形-重複削除◎◎.js
SZ-◎◎検出-オブジェクト重複と枠外◎◎.js
SZ-◎◎変換-シフトJIS4桁を文字に◎◎.js
SZ-◎◎変換-ユニコード4桁を文字に◎◎.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-マクロのフォルダのフルパス指定用.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」を選択して下さい。)
マクロによっては同梱のテキストファイル(.txt)の書き換えと上書き保存も必要です。こちらはエンコードが「UTF-16 LE BOM」で保存しないと文字化けします。
③TTEditの[ツール]-[マクロ]、マクロを選択して[実行]します。
すぐに連続実行が始まります。マクロは処理のみでフォントファイルの保存は入ってませんので終わったら自分で保存操作をして下さい。
マクロの操作で困ったら
【 テキストエディタ『VS Code』でマクロファイル(.js)を開きたい 】
・初回は「このウィンドウで信頼されていないファイルを許可しますか? 」が出ます。そのまま開いて下さい。
・マクロファイル(.js)が文字化けして開かれます。画面下部のUTF-8をクリック-
「エンコード付きで再度開く(Reopen with Encoding)」→ 「Japanese(Shift JIS)」を選ぶ。文字化けが直ります。
【 「マクロの内容が無効です」が出る 】
範囲番号などを書き換え保存した後にエラーが出る時は、記入した英数字が半角になっているか確認して下さい。全角で入力するとエラーになります。
また、コード番号を指定する時に番号に接頭辞0xがあるものは0xを削除しないで下さい。例)var START_CODE = 0x829F;
【 全文字を処理したい 】
縦書き》 私のTtedit用マクロは横書きと縦書きは別のマクロです。縦書き専用文字115文字はSZ-縦★-のついたマクロをかけて下さい。文字一覧パネルの右上を縦書き専用文字にすると縦書き専用文字を確認できます。
横書き》 横書き文字はTTEditではUnicodeの全範囲でマクロをかけて下さい。
自作フォントの収録文字はUnicode 0000~FFFFまででカバーできるものが多いと思いますが、フォントによってはFFFFを超えるものもあります。文字一覧パネルを[Unicode]にし、[設定]で[作成済み文字のみ表示]にチェック、スライダーを下まで下げてオブジェクトが存在する最後のコード番号を調べて下さい。
【 マクロの中止について 】
[ツール]-[マクロの中止]で中止できます。文字範囲が広い設定の場合、中止の処理終了ダイアログが出るまで1分程度タイムラグがあります。
【 TTEditの強制終了について 】
フリーズした時は、Windowsの強制終了ショートカットCtrl + Alt + DeleteからTTEditの終了をして下さい。黒画面になり、タスクマネージャーなどの選択肢と、右下に再起動などの電源アイコンが出ます。
【 マクロで最後の一文字が処理されてない 】
マクロを実行後に、文字一覧パネルを見ると最後の1文字が出来ていないように見えることがありますが、次の文字に移動などの動作が有った時にプレビューの更新がされるためで、処理はされています。文字一覧パネル[設定]で[プログラムがアクティブでない時は表示しない]にチェックを入れて下さい。マクロの終了ダイアログ時に文字一覧パネルのオンオフによってプレビューが更新されます。
【 マクロが途中で止まる、遅くなる 】
マクロの実行中に画面の遷移が止まって見えたり、急に遷移が遅くなることがあります。これは編集不可文字をバックグラウンドで文字数分移動しているためで、正常に実行中ですのでそのまま待っていて下さい。とくにコード番号が大きく飛ぶ箇所は2分近く止まって見えることがあります。(シフトJIS:00DF→8140など)
マクロを実行すると1文字ずつ遷移していくため、7000字位の処理で10分程度かかります。
【 ところどころ処理されない 】
TTEdit製ではないフォントでは、縦書き専用文字やサイドベアリング可変文字の定義範囲がTTEditと異なり、スキップされる可能性があります。
【 コピーされない 】
コピー系マクロでは貼り付け方を選択できます。貼り付け方を「常にコピー」にして動作をテストして下さい。
《ツール・変換系》
ツール系マクロはTTEditが起動していればフォントファイルが開いて無くても実行できます。
SZ-■■マクロ保存先フォルダを開く■■.js

私の自作マクロでは、実行前にマクロのファイル(.js)だけでなく同梱のテキストファイル(.txt)も開いて編集するものがあり、マクロのフォルダを辿って探すのは面倒なので、TTEditからマクロ入りのフォルダを呼び出せるようにしました。
SZ-◎◎変換-シフトJIS4桁を文字に◎◎.js(例:82A0→あ)

TTEditをテキストファイルの文字コード変換ツールとして使います。任意のテキストファイル(〇〇.txt)を選択し内容の4桁の数字をシフトJISで変換して文字列テキストファイルを出力します。ファイルの選択画面を開く際に、やや時間がかかりWindowsの黒いウインドウが一瞬出ますが仕様です。
4桁数字を変換の際に、予期しない部分まで変換対象になることがあります。(2025/11/15→ %/11/15)(CID 7575→CID uu)
SZ-◎◎変換-ユニコード4桁を文字に◎◎.js(例:3042→あ) (例:U+3042→あ)

TTEditをテキストファイルの文字コード変換ツールとして使います。任意のテキストファイル(〇〇.txt)を選択し内容の4桁の数字をUnicodeで変換して文字列テキストファイルを出力します。ファイルの選択画面を開く際に、やや時間がかかりWindowsの黒いウインドウが一瞬出ますが仕様です。
4桁数字を変換の際に、予期しない部分まで変換対象になることがあります。(2025/11/15→ ‥/11/15)(CID 7575→CID 畵)( シフトJIS 81BE→シフトJIS 膾)
SZ-◎◎テキスト整形-1文字で改行◎◎.js

テキストを1文字単位で改行します。エクセルに貼り付けたりするのに便利です。
TTEditをテキストファイル変換ツールとして使います。選択した任意のテキストファイル.txtを読み込み、改行済みテキストファイルを出力します。
ダイアクリティカルマークを含む文字は1文字単位で改行できないことがあります。
(私の自作マクロではOTEditで扱うCID番号を波括弧で扱うことがあるので、波括弧に入った数字は1文字扱いで処理します。例:{115})
SZ-◎◎テキスト整形-シフトJIS順に並び替え◎◎.js(例:おえういあ→あいうえお)

実際に自作する横書き文字の量や順番を把握しやすくするために作ったマクロです。「ファイル」-「文字一覧テキストファイルを作成」をUnicode・作成済みのみで作成後に使うと便利です。
TTEditをテキストファイル変換ツールとして使います。選択した任意のテキストファイル.txtを読み込み、並べ替え済テキストファイルを出力します。
出力結果は [シフトJIS順(重複削除済)]、[シフトJIS範囲外(重複削除済・カンマ区切り・Unicode順)]に振り分けて表示。
入力文字列で重複登録のシフトJISコードがある場合、∵∵∵(異なるシフトJISが3個)は∵∵∵(同一シフトJISが3個)と見なされ、重複処理されます。
シフトJIS範囲外はカンマ区切りで出すことで、難しい漢字や欧文でも1文字単位の代替フォント表示のフォールバックが効き、豆腐になりづらくなっています。
SZ-◎◎テキスト整形-重複削除◎◎.js(例:あああ→あ)(例:ああい→い)

TTEditをテキストファイル変換ツールとして使います。選択した任意のテキストファイル.txtを読み込み、1文字単位で重複削除し、重複削除済テキストファイルを出力します。
出力結果は[重複削除(あああ→あ)]、削除された文字(重複削除)、[重複を両者削除(ああい→い)]、削除された文字(重複削除) に振り分けて表示します。文字の並べ替えはされません。
入力文字列で重複登録のシフトJISコードがある場合、∵∵∵(異なるシフトJISが3個)は∵∵∵(同一シフトJISが3個)と見なされ、重複処理されます。
《検出系》
SZ-◎◎検出-オブジェクト重複と枠外◎◎.js

グリフ枠からはみ出してるオブジェクト、枠外のオブジェクト、「オーバーラップ輪郭を削除」で同一化できない完全同一座標の同一オブジェクトを検出します。
開いているフォントを調べて 「重複と枠外オブジェクトの検出リスト」フォルダをデスクトップに作成し、その中にグリフごとの”CID-0000.csv” と “重複と枠外オブジェクトの検出リスト.txt” を作成し、テキストを前面表示します。
[調査範囲]、[重複オブジェクト検出(完全同座標): 0グリフ]、[枠外オブジェクト検出: 0グリフ]と振り分けて表示。検出後はフォルダ内の大量の.csvは使わないので削除して下さい。
枠外判定はオンカーブ点・オフカーブ点の座標位置でみるため、実体の輪郭はグリフ枠に収まっていることもあります。気になる場合は極大点を追加して下さい。
【手作業で極大点を上下左右に追加するには】
オブジェクトを選択していない状態で、カーソルをオブジェクトの輪郭線上(塗りの中ではなく)におき、右クリック-[極点を追加]-[上/下/左/右/上下左右]を選択で極点が追加されます。(マクロでこの連続追加はできません。)
【マクロの作り方】
この検出マクロはTTEdit用に.vbsで一度完成しましたが、GetPoint2の座標取得でつまづき、.jsに変換できませんでした。その後に「ファイル」-「エクスポート」-「CSV」がDoc.ExportCSVFileでマクロから動かせることに気がついたため.jsマクロで完成しました。
【はみだしを目視するには】
編集画面で[表示]-[外接四角形を表示]で4辺の余白数値が出るので、グリフ枠からはみ出しがあると余白数値が赤くなります。グリフ枠の周囲にゆとりを持たせて表示して下さい。
《仕上げ作業系》
SZ-〇Y極大点を追加.js
[編集]-[Y極大点の追加]を連続処理します。マクロの実行にSendKeysを使用するため、擬似的にキーボードCtrl+Alt+Yの連打状態となります。マクロの実行中に他の作業をしないで下さい。
SendKeysはY極大点が実際に追加できたかどうかに関わらず、一定の速さで遷移します。複雑なパスで空振りがある場合スピードを遅く設定して下さい。
マクロ終了後NumLockキーのアイコンが画面中央に残ることがありますが、通常数分で消えます。20分以上残り続けて邪魔な場合はパソコンを再起動して下さい。
【マクロ改造用SendKeys覚書】
ショートカットキーCtrl+Alt+Yは、SendKeysでは^%y(小文字 y)で記入。
【Y極大点とは】
Illustratorなどで縦書きで表示する際、高さの計算はオブジェクトの輪郭サイズではなく、オンカーブ点かオフカーブ点の座標を使用するため、上辺に曲線のあるグリフは実際より大きく余白サイズを取られてしまいます。それを防ぐために上辺頂点(Y極大点)にオンカーブ点を追加します。
【Y極大点は2点追加されることがあります】
(OTEdit[ヘルプ]-[目次]-[検索]タブに「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が効かないのでマウスのみで操作。)
シフトJIS範囲指定では効果が重ねがけとなって不都合なため、範囲選択はUnicodeのみ。TTEditとOTEditの連動している文字について。どうしてもシフトJIS(第一水準のみ処理したいなど)で連番コピーしたい場合はHiMacroExを使って下さい。TTEditとOTEditの繰り返し作業を自動化する(HiMacroEx・Automator)。
SZ-オブジェクトを文字列へコピー.js

漢字の部首パーツなどを一気にコピー配置するために作ったマクロです。文字列(鮭鯖鮫…)で指定してコピーできます。
Unicode3000(全角スペース)を一時置き場として使い、同梱の「SZ-文字列コピーと削除用-UTF-16 LE BOM.txt」の [USER_TEXT] セクションの文字列へコピーします。貼り付け方法を「空グリフのみにコピー」を選択すればまだ作ってないところだけに部首を入れていけます。偏と旁を同居するようにするには「常にコピー」で普通にコピーします。
魚偏(鮭鯖鮫…)のような情報はマクロに入れてませんので、自分で用意して下さい。文字リストの用意については下にまとめてます。一度使った文字リストは[REFERENCE_ALL]セクションに貯めておくと次のフォント制作で使えます。
【文字リストをOTEditの関連文字一覧パネルからコピー】

関連文字パネルを開き、左上をUnicodeに(シフトJISでは全文字出ません)。「設定」の右側▼から「一覧をテキストファイルに保存」。現在オープン中の1文字がリストから抜けてしまうのに注意して下さい。また、クリックして出てくる次の階層はテキストファイルに出ないため、(鮮をクリックすれば癬蘚が出るが、魚で癬蘚は出ない)完全なリストアップにはなりません。魚偏リストから魚や魯など形が違うものは自分で振り分けて下さい。部首ごとにテキストファイルの出力が必要です。手軽ですが完全リストでないことに注意。
【文字リストをインターネットから検索してコピー:おすすめ】

①【参考】漢字辞典オンラインで魚の入っている漢字を構成検索し、コピー。
②【参考】改行・空白・タブ削除ツールで改行を削除。
③【参考】総合漢字チェッカー by attosoft.infoで第一水準・第二水準を抜き出す。魚や魯など形が違うものを自分で省く。
この方法は魚の構成検索で魚鮮癬蘚まで一気に出せます。リスト漏れが出にくく、おすすめです。部首ごとに構成検索が必要です。
【文字リストをTTEditの文字一覧からコピー】

①[ファイル]-[新規作成]-[和文フォント][プロポーショナル]。ファイルは空で構いません。[ファイル]-[文字一覧テキストファイルを作成]。左下[シフトJIS]、「字形が作成されている文字のみ」のチェックを外す。テキストファイルを出力。
②メモ帳などで開けて、ここから丸囲み文字・濁点・シフトJISなら部首別にまとまっている第二水準漢字などを目視でピックアップ。
【文字リストをWikipediaからコピー】
【参考】ダイアクリティカルマークの一覧はWikipediaにまとまっています。
【参考】アキュート・アクセント
シフトJIS範囲にあるものはあまり数がないので目視でコピペでいけそうですが、もしUnicode範囲を制覇するならマクロがあったほうがいいかもしれない。アクセント記号の位置を大文字用と小文字用で高さを変えたいときはUnicode3000(全角スペース)に置いた時点で変えて、2回に分けてマクロをかけると良いと思います。
コピーでばらまいた後に部分パーツ単位での削除や更新はできませんのでコピーは慎重に。ある程度デザインが固まってからマクロを使うと良いと思います。
SZ-オブジェクトを対応コピー.js
主に記号領域の、文字を使い回しする部分を一気にコピー配置するために作ったマクロです。ひらがな・カタカナ・数字・アルファベットが出来たあたりでマクロをかけると、下の3種類のコピーが一気に処理されて未作成の部分が埋まります。
グリフとグリフの対応リストは同梱の「SZ-対応コピー用-UTF-16 LE BOM.txt」にサンプルを入れています。オブジェクトはそのままの状態でコピーするので、コピー後に位置や字体の修正が必要です。違いを見落とさないよう注意して下さい。
SZ-オブジェクトを文字列へコピーマクロと似ていますが、コピー元/コピー先がUnicode番号を持つ単独グリフであることが必要です。

[INDEX_PAIRS](インデックス対応)では 同じ文字数同士でコピー出来ます。区切り文字は※。123456789※①②③④⑤⑥⑦⑧⑨

[EXPAND_PAIRS] (展開対応)では1文字→複数文字でコピー出来ます。区切り文字は->。ハ->バパ

[AGGREGATE_PAIRS](集約対応)では複数文字を1文字に集約コピーできます。区切り文字は=>。センチ=>㌢
集約対応コピーで漢字も作れるか?)
仕組み的には漢字の集約もできそうですが(魚+圭で鮭)、多分リストづくりの手間のほうがかかるので大変かと。頑張って対応リストを作っても、パーツの修正がその都度反映されたりしないので、利用数の多い部首だけを「SZ-オブジェクトを文字列へコピー」する位が現実的だと思います。
SZ-縦★-横書きから縦書きに対応コピー.js

横書きで書いたグリフを、対応する縦書き専用文字115字に対応コピーします。横書きの小書きの「ぁ」→縦書きの小書きの「ぁ」のように対応するグリフがコピーされます。貼り付け方法を「空グリフのみにコピー」にすると未作成文字のみにコピーされます。
横書きのそのままの状態でコピーするので、その後の字体や位置の修正が必要です。コピー後のグリフはそれぞれ独立しているので、互いにデザインの修正が反映されたりはしません。
縦書きのマクロはJIS順で処理しています。シフトJISではないので文字一覧パネルの表示やマクロのコード番号の指定で注意して下さい。
【参考】武蔵システム:縦書き専用文字
《オブジェクトの削除系》
SZ-オブジェクトを連番削除.js
オブジェクトを連番で削除します。Unicode / Shift-JIS 範囲選択可能。よく使うと思う。
SZ-オブジェクトを文字列で削除.js
オブジェクトを文字列で削除します。同梱の「SZ-文字列コピーと削除用-UTF-16 LE BOM.txt」の[USER_TEXT] セクションを読み込みます。このテキストファイルはコピーマクロと共用です。オブジェクトを文字列へコピーマクロで失敗したなと思った直後であれば同じ文字列で使えるかもしれないけども、グリフごとに全選択→削除するので、旁を残して偏パーツだけ削除などはできません。あまり使わないと思う。
《スライダー系》
SZ-サイドベアリング一括設定.js

サイドベアリングをまとめて設定するマクロです。左右サイドベアリング=プロポーショナル幅の変更です。
【サイドベアリングリスト】TTEditヘルプページより「サイドベアリング」で検索したものを使用。
横書きの設定等幅フォント、縦書き専用文字、シフトJIS8897(亜)以上の漢字は設定できません。
縦書きの設定和文フォント以外、等幅フォント、半角文字、縦書き専用文字と同じ文字コードの横書き、シフトJIS8897(亜)以上の漢字は設定できません。
これを前提に、新規ファイルにオブジェクト全文字配置、サイドベアリングを一括設定してスライダー数値が動いたもの=可変と判断してマクロでピックアップしてリストを自作。
・上下サイドベアリング可変文字=483グリフ
・左右サイドベアリング可変文字=1774グリフ
同梱の「SZ-サイドベアリングユーザー選択用-UTF-16 LE BOM.txt」で設定する文字を任意で入力できます。
スライダーのないグリフ、オブジェクトが無いグリフは入力されても設定をスキップされます。
このマクロでは余白数値は上下で同値・左右で同値(=オブジェクト位置中央揃え)にしか設定できません。文字によっては左右で同値では無い方が縦書きの見た目が良いものもあります(「Jjしトレ」や濁点半濁点付きなど)。マクロ後、縦書きにしても違和感がないか実際に並べて再確認し、スライダーで手動で調整して下さい。([ファイル]-[インストール済みを開く]で他の日本語フォントを開くと余白の参考になります。)
サイドベアリング数値を「NO」入力で適用しない事ができるので、上下はNOで、左右のみ余白50などに設定することもできます。
【設定数値と余白数値のズレについて】
3O@など曲線のオブジェクトは、編集画面で表示される[表示]→[外接四角形を表示]の余白数値がマクロの設定値より大きくなる場合があります。手作業で[文字情報]から設定しても、マクロから設定してもこのズレは出ます。微差であれば、実際にはそれほどデザイン的には影響しないと思います。
【手作業で極大点を上下左右に追加するには】
オブジェクトを選択していない状態で、カーソルをオブジェクトの輪郭線上(塗りの中ではなく)におき、右クリック-[極点を追加]-[上/下/左/右/上下左右]を選択で極点が追加されます。(マクロでこの連続追加はできません。)
※マクロでは後からスライダーを最初の座標位置にまとめて戻すことは出来ません。
※文字によっては同種のものでもスライダーの有無がまちまちです。(例:㍻㍼㍽㍾はスライダーあり。㋿(U+32FF)はスライダー無し。)(例:①~⑳はスライダーあり。⓪(U+24EA)はスライダー無し。)
※漢字にはスライダーはありません。

【手作業でサイドベアリングを設定するには-[文字情報]】
編集画面で1文字ずつ設定できます。[設定]-[文字情報]。タブで[横書き]/[縦書き]。[サイドベアリングで設定する]にチェック、数値を入力。左右対象でない数値でも入力できます。フォントによっては横書きタブのみの設定です。
【手作業でサイドベアリングを設定するには-スライダー移動】
直接スライダーの移動で設定することもできます。スライドショー注意文字マクロではスライダー有りの文字だけをチェックしながら設定できます。
マクロ自作メモ)
サイドベアリング数値をマクロで取得した場合(マクロは非配布)、オブジェクトがある時は設定した余白値(100,100,100,100のような)になりますが、オブジェクトが無い状態では数値は以下のような半角用/全角用のスライダー座標値を表します。
LeftSB,RightSB,TopSB,BottomSB
0,512,880,144
0,1024,880,144
※おそらくマクロでスライダーを座標指定で移動することは出来ません。マクロで指定出来るのはオブジェクト有り前提の余白数値のみです。
SZ-縦★-サイドベアリング一括設定.js

縦書き専用文字のサイドベアリングマクロです。文字一覧パネルの右上を[縦書き専用文字]に切り替えてください。縦書き専用文字ではボトムスライダーのみ設定できます。
ボトムサイドベアリング可変文字=115グリフ(縦書き専用文字すべて)ですが、初期状態で連番範囲指定は縦書きの小書きのあ(JIS:0x2421)~小書きのヶ(JIS:0x2576)になっています。書き換えできます。
SZ-〇スライドショー.js

グリフを連続して開けていきます。7000字位をゆっくり見ると30分~1時間かかります。マクロには一時停止/再開ボタンがないため、途中休憩や離脱できるように100字や1000字おきなどで続行確認パネルが出るようにしました。続行確認の間隔はユーザー設定できます。
「空グリフも表示」「作成済みのみ表示」が選択できます。速度も選択できます。

【スライドショーで2つの字形を比較しやすい表示にするには】
テンプレートフォントはオブジェクトの背後に隠れてしまうため、[表示]-「プレビュー」ウインドウを横において1文字大きく表示してからスライドショーを実行すると2つを見比べしやすいです。このスライドショーマクロでプレビューウインドウが出てくるわけではないので、好みで設定して下さい。
【マクロ改造用覚書】
「作成済みのみ」のピックアップに IsRegisteredCodeを使用しています。
(最後の保存時に未作成だったグリフが取りこぼされるため、 「作成済みのみ」選択時は実行前に保存推奨ダイアログを表示する。新規ファイルにオブジェクトを置き、未保存の状態では0グリフと見なされ、マクロが即完了します。)
SZ-〇スライドショー注意文字.js

サイドベアリングのスライダー有り文字(縦書き専用文字を除く)やJIS90と2004で字形が異なる168字などをスライドショーできます。続行確認パネルの表示中は、オブジェクトやサイドベアリングのスライダーを編集したり他のグリフを開けたりできるので、1字や10字おき位で続行確認を出して止めながらの修正作業が可能です(ダイアログ表示中でもマウス操作可)。続行確認パネルは毎回画面中央に出るので、邪魔なら編集画面の方をずらして下さい。
スライドショー表示グループを選択できます。
1=上下サイドベアリング可変483字
2=左右サイドベアリング可変(プロポーショナル幅)1774字
3=JIS90と2004で字形が異なる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などのダイアログの入力欄に入力してもらうことが出来ない(コードを開けてもらって書き換えに変更)
作ったけど配布しないマクロ、作れなかったマクロ
マクロの自作でチャレンジしたけど、配布にいたらなかったものの記録です。
グリフカウントマクロ(配布無し)

メモ帳でグリフ数は分かるので、同じものだなということでマクロは無し。([ファイル]-[TrueTypeフォントの新規作成]-[和文フォント][プロポーショナル]。[ファイル]-[文字一覧テキストファイルを作成]左下[シフトJISまたはUnicode]、「字形が作成されている文字のみ」のチェックを外すと全文字リストを出力。)
テキストファイルでは横書きでUnicodeのある文字しか出せないのでここに縦書きは入ってません。
プロポーショナル幅確認マクロ(配布無し)
.jsで座標を取得できなかったのでマクロを作りませんでした。
TTEditに元々ある[ファイル]-「印刷」でプレビューもPDFも出せるので、目視で見れるから良しということにしました。プロポーショナル幅の枠が出るので、余白が確認できます。「印刷」項目にありますが、プリンター不要です。

・[印刷プレビュー]でTTEdit自体をプレビューウインドウとして使えます。ちょっと見るだけが出来て手軽です。キーボードのPageDownキーで次のページに移っていけます。
・[印刷]で実際に印刷はせずに、PDFの出力ができます。[プリンタの設定]で「Microsoft Print to PDF(無料、Windowsの標準搭載機能)」か「Adobe PDF(※有料版Acrobat Proが必要)」を選択しておく。
多重コピぺ検出マクロ(配布無し)
「オーバーラップ輪郭を削除」で同一化できない、完全同一座標の同一オブジェクト(およびコピペのズレ付与オブジェクト)の検索マクロを作り.vbsで一度完成しましたが、GetPoint2の座標取得でつまづき、.jsに変換できませんでした。
2025/11/24:完全同一座標の同一オブジェクトの検出マクロを追加しました。ズレ付与ありのものはヒットしません。
部首・共通パーツ削除マクロ(配布無し)
.jsであれこれ試したのですが、TTEditは基本的に全選択-削除の動きになっていて、パーツの一部を選択状態にピックアップして削除することが難しく、無理でした。同居オブジェクトがあるグリフで、単純な丸オブジェクトを選択状態にして削除、というので実験したところ削除はできるが一部のポイントの残骸が残ったり、同居オブジェクトのパーツが崩れたりして上手く行きませんでした。これができればパーツや部首単位で置き換えや更新が出来るかなと思っていたのですが残念。
あとがき:この後の予定 OTEdit for Windows用マクロも作る予定
あったら面白いかなと思って色々作りましたが、まだフォント制作で使ったわけではないので実用的ではないかもしれません。
配布したTTEdit用マクロは、OTEdit for Windows用マクロも準備中です。CIDがあるので全部は変換できなそうです。(OTEdit for Mac用はマクロが非対応なので作りません。)
2025/11/24追記:OTEdit for Windows用マクロができました
OTEdit用マクロも作りました!OTEdit for Windows用のマクロを作ってみた OTEdit用マクロを作ってみたらいくつか発見があったので、TTEdit用マクロの方も追加と改良アップデートしています。
※2025/11/24 マクロは問い合わせやサポートNGにする予定ですが、うっかりとか勘違いがあるかもなので、年内くらいまで不具合報告のみ受け付けます。すぐに修正は出来ないかも。※