文字の塗りと線だけを選択レイヤーで変更する
このスクリプトは文字パネルの塗り・線を変更する例で、レイヤースタイルの「境界線」は追加しません。
別名保存した練習コンポジションに、クリックして作ったテキスト「AB」と「CD」を置き、文字内容と元の色・線幅を記録します。
ソーステキストにキーや式を付けず、2枚のテキストレイヤーだけを選択します。
下のコードをtext-style.jsxとしてUTF-8で保存し、「ファイル」→「スクリプト」→「スクリプトファイルを実行」から実行します。
期待する変更は黒い塗りと白い2pxの文字の線で、「AB」「CD」の文字内容やフォントサイズは代入し直しません。
(function () {
var comp = app.project && app.project.activeItem;
if (!(comp instanceof CompItem)) { alert("Open a composition."); return; }
var layers = comp.selectedLayers, targets = [];
if (!layers.length || layers.length > 20) { alert("Select 1 to 20 static text layers."); return; }
for (var i = 0; i < layers.length; i++) {
var layer = layers[i];
if (!(layer instanceof TextLayer) || layer.locked) {
alert("Select unlocked text layers only."); return;
}
var source = layer.property("ADBE Text Properties").property("ADBE Text Document");
if (source.numKeys || source.expression !== "") {
alert("Source Text must have no keys or existing expression."); return;
}
targets.push({source:source, doc:source.value});
}
var changed = 0;
app.beginUndoGroup("Change selected text fill and stroke");
try {
for (i = 0; i < targets.length; i++) {
var doc = targets[i].doc;
doc.applyFill = true; doc.fillColor = [0, 0, 0];
doc.applyStroke = true; doc.strokeColor = [1, 1, 1]; doc.strokeWidth = 2;
targets[i].source.setValue(doc); changed++;
}
} catch (error) {
alert("Stopped after " + changed + " changes. Undo or reopen the practice copy.\n" + error);
} finally { app.endUndoGroup(); }
}());
文字列全体へ指定色と線幅を設定するため、一部の文字だけの色分けを残す用途には使わないでください。
レイヤースタイルの境界線とテキストアニメーターは別の設定なので、元の効果が有効なら見た目にも影響します。
20枚までの選択を対象にし、非テキスト・ロック・ソーステキストのキー・既存の式が混ざると、書き込み前に停止します。
式が無効になっていても、式の文字列が残っていれば上書きしません。
途中で停止した場合は、一部だけ変更されている可能性があります。
Ctrl+Z/Command+Zを1回実行し、文字内容と元の色・線幅を確認するか、別名保存した練習コピーへ戻してください。
コードの構文・数値計算・模擬APIを確認しましたが、AE本体での操作、描画、取り消しの実行確認は未完了です。
| 入力・条件 | 操作・結果 | 確認する点 |
|---|---|---|
| ABとCDを選択 | 黒塗り・白線2px | 文字内容とフォントサイズを照合 |
| キー・式・非テキスト | 書き込み前に停止 | 無効な式も保護 |
| 途中の書込失敗 | 処理停止・Undo案内 | 変更済みレイヤーも確認 |
レイヤースタイルの境界線サイズは別の記事で扱います。
参照:コミュニティ管理のTextDocumentとProperty。
資料確認日:2026年10月3日。
旧記事のコマンドIDによる境界線追加は、文字の線とは対象が異なるため、この例から外しました。
旧実装の参考コードはGitHubに残っていますが、本稿の修正版とは内容が異なります。
関連記事
対象の異なる操作は、以下の記事で確認できます。





