文字の塗りと線だけを選択レイヤーで変更する
このスクリプトは文字パネルの塗り・線を変更する例で、レイヤースタイルの「境界線」は追加しません。
別名保存した練習コンポジションに、クリックして作ったテキスト「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回実行し、文字内容と元の色・線幅を確認するか、別名保存した練習コピーへ戻してください。
2026年10月15日にAfter Effects 26.5.0 (Build 89)で実行した結果は、この節の最後にまとめています。
| 入力・条件 | 操作・結果 | 確認する点 |
|---|---|---|
| ABとCDを選択 | 黒塗り・白線2px | 文字内容とフォントサイズを照合 |
| キー・式・非テキスト | 書き込み前に停止 | 無効な式も保護 |
| 途中の書込失敗 | 処理停止・Undo案内 | 変更済みレイヤーも確認 |
レイヤースタイルの境界線サイズは別の記事で扱います。
参照:コミュニティ管理のTextDocumentとProperty。
資料確認日:2026年10月3日。
旧記事のコマンドIDによる境界線追加は、文字の線とは対象が異なるため、この例から外しました。
旧実装の参考コードはGitHubに残っていますが、本稿の修正版とは内容が異なります。
After Effects 26.5で実行して確かめた(2026年10月15日)
2026年10月15日に、Windows 11 Pro (10.0.26200)のAfter Effects 26.5.0 (Build 89)で、上のコードをそのまま実行しました。
練習用に、1280×720・30fps・3秒のコンポジションを作り、ポイントテキスト「AB」(メイリオ100px、赤い塗り、緑の線5px)と「CD」(メイリオ80px、青い塗り、緑の線3px)を置いて、2枚を選びました。
コンポジションと文字の準備、コードの実行はスクリプトから行い、「ファイル」→「スクリプト」→「スクリプトファイルを実行」のメニュー操作と、クリックでの文字入力は確認に含めていません。
実行後は2枚とも黒い塗り・白い線2pxになり、文字パネルにも線幅2pxと「塗りの上に線」が表示されました。
文字内容(AB・CD)、フォント(メイリオ)、サイズ(100px・80px)は変わらず、2枚とも選ばれたままでした。

続けて「編集」メニューを開くと、先頭に「Change selected text fill and strokeの取り消し」と表示されました。
これを1回選ぶと、2枚とも元の塗りと線(5px・3px)に戻りました。
取り消したあとの画面を書き出した画像は、実行前に書き出した画像と画素単位で同じでした。
Ctrl+Zのキー操作で取り消した結果は、今回の確認に含めていません。

止まる条件は、下の表の7通りで確かめ、どれも書き込む前に止まって、文字の設定と式は変わりませんでした。
1枚と20枚を選んだ場合は、どちらも黒い塗り・白い線2pxに変わりました。
| 選んだレイヤー | 枚数 | 結果 |
|---|---|---|
| 何も選ばない | 0枚 | 停止(Select 1 to 20 static text layers.) |
| テキスト以外のレイヤーを含む | 3枚 | 停止(Select unlocked text layers only.) |
| ロックしたテキストを含む | 2枚 | 停止(Select unlocked text layers only.) |
| ソーステキストにキーがある | 2枚 | 停止(Source Text must have no keys or existing expression.) |
| ソーステキストに有効な式がある | 2枚 | 停止(同上) |
| ソーステキストに無効にした式が残る | 2枚 | 停止(同上) |
| テキストを21枚 | 21枚 | 停止(Select 1 to 20 static text layers.) |
| テキストを1枚 | 1枚 | 黒い塗り・白い線2pxに変更 |
| テキストを20枚 | 20枚 | 黒い塗り・白い線2pxに変更 |
表の9通りは、同じコードをAfter Effectsの中でスクリプトから読み込んで実行し、警告の文面を記録して確かめたもので、警告の画面をすべて撮影したわけではありません。
無効にした式が残るレイヤーを含む2枚では、コードをそのまま実行して、警告が表示され、文字の設定と式が変わらないことを画面でも確かめました。

保存した練習用のプロジェクトを開き直しても、文字・フォント・サイズ・塗り・線・式は保存前と同じでした。
確かめていないのは、Macと他のバージョン、段落テキスト、一部の文字だけの装飾、レイヤースタイルやテキストアニメーターとの併用、途中で書き込みに失敗した場合の動きです。
関連記事
対象の異なる操作は、以下の記事で確認できます。





よくある質問:After Effectsで文字の塗りと線をスクリプトで変更するとき
このスクリプトは、何を変更しますか?
文字パネルの塗り・線を、選択したテキストレイヤーで変更する例です。
レイヤースタイルの「境界線」は追加しません。
記事の期待する変更は、黒い塗りと白い2pxの文字の線で、「AB」「CD」の文字内容やフォントサイズは代入し直しません。
練習の準備として、何をしますか?
別名保存した練習コンポジションに、クリックして作ったテキスト「AB」と「CD」を置き、文字内容と元の色・線幅を記録します。
ソーステキストにキーや式を付けず、2枚のテキストレイヤーだけを選択します。
コードをtext-style.jsxとしてUTF-8で保存し、「ファイル」→「スクリプト」→「スクリプトファイルを実行」から実行します。
一部の文字だけ色分けしたテキストにも、使えますか?
使わないでください。
文字列全体へ指定色と線幅を設定するため、一部の文字だけの色分けを残す用途には向きません。
レイヤースタイルの境界線とは、同じですか?
別の設定です。
レイヤースタイルの境界線とテキストアニメーターは別の設定なので、元の効果が有効なら見た目にも影響します。
レイヤースタイルの境界線サイズは、別の記事で扱っています。
スクリプトが実行されない(停止する)のは、なぜですか?
20枚までの選択を対象にし、非テキスト・ロック・ソーステキストのキー・既存の式が混ざると、書き込み前に停止します。
式が無効になっていても、式の文字列が残っていれば上書きしません。
途中で止まったときは、どうしますか?
途中で停止した場合は、一部だけ変更されている可能性があります。
Ctrl+Z/Command+Zを1回実行し、文字内容と元の色・線幅を確認するか、別名保存した練習コピーへ戻してください。
旧記事のコマンドIDによる境界線追加は、どうなりましたか?
文字の線とは対象が異なるため、この例から外しました。
旧実装の参考コードはGitHubに残っていますが、本稿の修正版とは内容が異なります。
このスクリプトは、実機で確認済みですか?
2026年10月15日に、Windows 11 Pro (10.0.26200)のAfter Effects 26.5.0 (Build 89)で、AB・CDの2枚に実行して黒い塗り・白い線2pxになること、「編集」メニューから1回取り消すと元に戻ること、7通りの条件で書き込む前に止まることを確かめました。
準備と実行はスクリプトから行い、メニューからのスクリプト実行、Ctrl+Zのキー操作、Mac、他のバージョン、途中で書き込みに失敗した場合は確かめていません。
資料確認日は2026年10月3日で、参照はコミュニティ管理のTextDocumentとPropertyです。
