After Effectsで複数のテキストレイヤーをまとめて変えるには、変えたいものが書式(フォント・サイズ・色)か、文字そのものかで方法を分けます。
書式なら、テキストレイヤーを複数選んで文字パネルで変えるだけでまとめて変わります。
文字そのもの(年号や社名など)を置き換えるなら、After Effectsに付属のスクリプト「Find and Replace Text.jsx」か、この記事のスクリプトで、テキストをまとめて検索・置換できます。
この記事は、Adobe公式ヘルプ(文字パネル、テキストレイヤーの作成と編集、テキストのエクスプレッション)と、スクリプトのリファレンス「After Effects Scripting Guide」の記載をもとにまとめたものです(2026年10月18日確認)。
画面は、After Effects 2026(26.5)の日本語版で、2026年10月19日に Windows 11 で撮影しました。
文字パネルでの一括変更、テキスト書式設定のみをペースト、付属のスクリプトと掲載したスクリプトでの置き換えは、練習用に作ったプロジェクトで実際に操作し、結果を確かめています。
メニューの名前は、画面の表示どおりに書いています。
やりたいことと方法
| やりたいこと | 方法 |
|---|---|
| フォント・サイズ・色をまとめて変える | テキストレイヤーを複数選んで、文字パネルで変える |
| あるレイヤーと同じ書式にそろえる | 書式をコピーして「テキスト書式設定のみをペースト」 |
| 同じ文字を何か所にも出し、1か所の修正で全部変える | 元になる1つのテキストに、ほかのレイヤーをエクスプレッションでつなぐ |
| 選んだレイヤーの中の語だけを置き換える | 付属の Find and Replace Text.jsx を使う |
| コンポジション全体(プリコンポジションの中も)の語を置き換える | この記事の検索と置換のスクリプトを実行する |
書式をまとめて変える:文字パネル
Adobeのヘルプでは、文字を選んでいない状態で文字パネルを変えると、選択しているテキストレイヤーと、選択しているソーステキストのキーフレームに適用されると説明されています。
- タイムラインパネルで、変えたいテキストレイヤーをCtrlキー(macOSはCommandキー)を押しながら複数選ぶ
- 文字ツールで文字を選んでいないことを確かめる
- ウィンドウメニューの「文字」で文字パネルを開き、フォントやサイズ、色を変える

実際に、サイズが96px・64px・40pxの3つのテキストレイヤーを選び、フォントスタイルを Bold から Light に変えると、3つとも Light になりました。
サイズはレイヤーごとの値のまま残り、選んでいないレイヤーは Bold のままでした。
選んだレイヤーで値が違う項目(この例ではサイズと塗りの色)は、文字パネルの欄に数字が出ず、横棒や「?」の表示になります。
レイヤーの中の一部の文字を選んでいると、その文字だけが変わります。
テキストもテキストレイヤーも選んでいないときに文字パネルを変えると、次に入力するテキストの初期設定が変わるとヘルプに書かれています。
この方法で変えられるのは、1つのコンポジションの中で選んだレイヤーだけです。
書式をそろえる:テキスト書式設定のみをペースト
見本にしたいレイヤーと同じ書式にそろえるなら、編集メニューの「テキスト書式設定のみをペースト」を使います。
- 見本のテキストレイヤーで、文字ツールを使い、コピーしたい書式の文字を選んでコピーする
- 書式をそろえたいテキストレイヤーを選ぶ
- 編集メニューの「テキスト書式設定のみをペースト」を選ぶ
見本の文字は、タイムラインでテキストレイヤーをダブルクリックすると、文字ツールに切り替わってレイヤーの文字がすべて選ばれた状態になるので、そのまま編集メニューの「コピー」でコピーできます。
コピーした後は、ツールパネルで選択ツールに戻してから、書式をそろえたいレイヤーを選びます。

実際に、太字・64px・緑の「2025 第1部」の書式をコピーし、細字・96px・白の「タイトル」レイヤーを選んで実行すると、タイトルの文字はそのままで、太字・64px・緑に変わりました。
書式としてサイズもコピーされるので、大きさを変えたくないときは、貼り付けた後で文字パネルのサイズを戻します。
ヘルプでは、レイヤーを選んでから使うとレイヤー全体に、文字を選んでから使うとその文字にだけ書式が適用されると説明されています。
逆に、貼り付け先の書式のまま文字だけを貼り付けたいときは、同じ編集メニューの「テキストをペーストして書式設定を一致させる」を使います。
こちらは文字ツールで文字を編集している間だけ選べる項目で、レイヤーを選んだだけの状態では灰色になっていました。
同じ文字を何か所にも使うなら:エクスプレッションでつなぐ
番組名や日付など、同じ文字を何枚ものテロップに出す場合は、元になるテキストを1つ決め、ほかのレイヤーのソーステキストをそれにつなぐと、元を直すだけで全部が変わります。
Adobeのヘルプでは、エクスプレッションで複数のタイトルをつないでスタイルを一度に更新できること、ソーステキストはエクスプレッションの中で文字列として扱われ sourceText で読み取れることが説明されています。
つなぎたいレイヤーのソーステキストを選び、アニメーションメニューの「エクスプレッションを追加」で、次のように書きます。
thisComp.layer("元の文字").text.sourceText「元の文字」は、元になるテキストレイヤーの名前に置き換えてください。

練習用のプロジェクトでは、エクスプレッションを入れたレイヤーに元のレイヤーと同じ文字が表示され、元の文字を「2026」に置き換えると、つないだレイヤーの表示も「2026」に変わりました。
つないだレイヤーのフォントやサイズは、元のレイヤーではなく、つないだレイヤー自身の設定のままでした。
なお、このエクスプレッションはスクリプトで入れたもので、アニメーションメニューから追加する操作は画面では行っていません。
この方法は、これから作るテロップに向いています。
すでにばらばらに入力したテキストの語を置き換えるなら、次の付属のスクリプトか、この記事のスクリプトを使います。
選んだレイヤーの語を置き換える:付属のFind and Replace Text.jsx
After Effectsには、テキストを検索・置換するスクリプト「Find and Replace Text.jsx」が最初から入っていて、ファイルメニューの「スクリプト」の一覧から選ぶだけで使えます。
- 置き換えたいテキストレイヤーを、タイムラインでCtrlキーを押しながら選ぶ
- ファイルメニューの「スクリプト」から「Find and Replace Text.jsx」を選ぶ
- 開いた小さな窓の Find Text に探す文字を、Replacement Text に置き換える文字を入れる
- Replace All を押す

実際に、4つのテキストレイヤーのうち3つを選んで「2025」を「2026」に置き換えると、選んだ3つだけが変わり、選んでいないコピーライトのレイヤーは「2025」のままでした。
選んだレイヤーのうち、ソーステキストにキーフレームがあるレイヤーは、キーフレームの文字も置き換わりました。
置き換えた後も、フォント・フォントスタイル・サイズは元のままでした。
スクリプトの中身を読むと、Find All を押すと、選んだレイヤーのうち探す文字を含むレイヤーだけが選ばれた状態になると説明されています(この操作は試していません)。
また、探す文字を正規表現として扱う書き方になっているため、ピリオドやかっこなどの記号を含む語は、思ったとおりに置き換わらないことがあります(この点も実行しては確かめていません)。
| 項目 | 付属のスクリプト | この記事のスクリプト |
|---|---|---|
| 置き換える対象 | 選んだテキストレイヤー | 開いているコンポジションのテキストレイヤー全部 |
| プリコンポジションの中 | 置き換えない | 置き換える(INCLUDE_PRECOMPS が true のとき) |
| 探す文字の扱い | 正規表現として扱う | 書いた文字そのままで探す |
| 探す文字の入力 | 窓の入力欄に入れる | コードの FIND と REPLACE を書き換える |
文字を置き換える:検索と置換のスクリプト
次のスクリプトは、開いているコンポジションの中のテキストレイヤーから FIND の文字を探し、REPLACE の文字に置き換えます。
INCLUDE_PRECOMPS を true にしておくと、コンポジションの中に置いたプリコンポジションの中も置き換えます。
付属のスクリプトと違って、レイヤーを選ぶ必要はありません。
// テキストの検索と置換(開いているコンポジションと、その中のプリコンポジション)
// 「ファイル」>「スクリプト」>「スクリプトファイルを実行...」で実行する
(function () {
var FIND = "2025"; // 探す文字
var REPLACE = "2026"; // 置き換える文字
var INCLUDE_PRECOMPS = true; // プリコンポジションの中も置き換えるなら true
var comp = app.project.activeItem;
if (!(comp instanceof CompItem)) {
alert("コンポジションを開いてから実行してください。");
return;
}
if (FIND === "") {
alert("FIND に探す文字を入れてください。");
return;
}
var done = {}; // 同じコンポジションを2回処理しない
var changedLayers = 0;
var changedKeys = 0;
var skipped = []; // エクスプレッションが付いていて飛ばしたレイヤー
app.beginUndoGroup("テキストの検索と置換");
processComp(comp);
app.endUndoGroup();
var msg = "置き換えたレイヤー:" + changedLayers + "\nうちキーフレームの数:" + changedKeys;
if (skipped.length > 0) {
msg += "\nエクスプレッションがあるため飛ばしたレイヤー:\n" + skipped.join("\n");
}
alert(msg);
function processComp(c) {
if (done[c.id]) {
return;
}
done[c.id] = true;
for (var i = 1; i <= c.numLayers; i++) {
var layer = c.layer(i);
if (INCLUDE_PRECOMPS && layer.source instanceof CompItem) {
processComp(layer.source);
}
if (!(layer instanceof TextLayer)) {
continue;
}
var prop = layer.property("ADBE Text Properties").property("ADBE Text Document");
if (prop.expressionEnabled) {
skipped.push(c.name + " / " + layer.name);
continue;
}
if (replaceInProperty(prop)) {
changedLayers++;
}
}
}
function replaceInProperty(prop) {
var changed = false;
if (prop.numKeys === 0) {
var doc = prop.value;
var next = doc.text.split(FIND).join(REPLACE);
if (next !== doc.text) {
doc.text = next;
prop.setValue(doc);
changed = true;
}
return changed;
}
for (var k = 1; k <= prop.numKeys; k++) {
var keyDoc = prop.keyValue(k);
var keyNext = keyDoc.text.split(FIND).join(REPLACE);
if (keyNext !== keyDoc.text) {
keyDoc.text = keyNext;
prop.setValueAtKey(k, keyDoc);
changed = true;
changedKeys++;
}
}
return changed;
}
})();使い方
- 上のコードをテキストエディターに貼り付け、FIND と REPLACE を書き換えて、拡張子を .jsx にして保存する(日本語を含むため、文字コードは UTF-8 の BOM 付きにしておくと無難)
- After Effectsでプロジェクトを保存しておく
- 置き換えたいコンポジションをタイムラインパネルで開く
- ファイルメニューの「スクリプト」から「スクリプトファイルを実行…」を選び、開いた窓で保存した .jsx を選んで[開く]を押す
- 終わると、置き換えたレイヤーの数が表示される
結果が思っていたものと違うときは、編集メニューの一番上の「テキストの検索と置換の取り消し」で戻します。
スクリプトの中で app.beginUndoGroup と app.endUndoGroup を使っているため、置き換え全体が1回の取り消しで戻ります。
実際に、キーフレームのあるレイヤーを含む4つのレイヤーを置き換えた後、この取り消しを1回選ぶと、4つとも元の文字に戻りました。
After Effectsで実行した結果
練習用に、テキストレイヤーを置いたコンポジションを2つと、その両方で使うプリコンポジションを1つ作り、FIND を 2025、REPLACE を 2026 のまま、UTF-8 の BOM 付きで保存したスクリプトを実行しました。

- 予告のコンポジションで実行すると、見出し・番組名の元の文字・プリコンポジションの中の文字の3つが置き換わり、エクスプレッションでつないだレイヤーは飛ばされて名前が表示された
- 飛ばしたレイヤーも、元の文字が変わったため、表示は「2026」になった
- 同じプリコンポジションを使っている本編のコンポジションも、プリコンポジションの文字は「2026」に変わった
- 本編のコンポジションで実行すると4つのレイヤーが置き換わり、3つのキーフレームがあるレイヤーでは「2025」を含む2つだけが変わって「おわり」はそのままだった
- 置き換えた後も、フォント・フォントスタイル・サイズは元のままだった
- 日本語のメッセージは文字化けせずに表示された
プリコンポジションの中を書き換えると、そのプリコンポジションを使っているほかのコンポジションの表示も変わる点に注意してください。
スクリプトがしていること
| 処理 | 内容 |
|---|---|
| 対象のコンポジション | 開いているコンポジション(app.project.activeItem)。開いていなければ止まる |
| テキストの取り出し | テキストレイヤーのソーステキストを、言語に左右されない内部名で取り出す |
| キーフレームがない場合 | 現在の文字を置き換えて setValue で書き戻す |
| キーフレームがある場合 | キーフレームごとに文字を置き換えて setValueAtKey で書き戻す |
| エクスプレッションがある場合 | 置き換えずに飛ばし、最後にレイヤー名を表示する |
| プリコンポジション | 中に入って同じ処理をする。何度使われていても1回だけ |
リファレンスでは、setValue はキーフレームのないプロパティの値を設定するもので、キーフレームがあるプロパティに使うとエラーになると説明されています。
そのため、ソーステキストにキーフレームを打って途中で文字を変えているレイヤーは、キーフレームの1つずつを setValueAtKey で書き換えています。
ソーステキストの取り出しには、表示名ではなく内部名(ADBE Text Properties と ADBE Text Document)を使っています。
リファレンスでは、内部名は表示名と違って翻訳されず、バージョンが変わっても変わらないと説明されているため、日本語版でも同じように動く書き方にしています。
エクスプレッションがあるレイヤーを飛ばすのは、表示されている文字がエクスプレッションの結果で、置き換えても見た目が変わらないためです。
模擬環境で確かめたこと
After Effectsのオブジェクトをまねた模擬環境をNode.jsで作り、このスクリプトを動かして次のことを確かめました。
- キーフレームのない文字が置き換わる
- キーフレームが3つあるレイヤーで、該当する2つのキーフレームだけが置き換わり、setValue は呼ばれない
- エクスプレッションのあるレイヤーは変わらず、レイヤー名が表示される
- 2か所で使われているプリコンポジションの中が1回だけ処理される
- 1つの文字の中に探す文字が2回あれば、2つとも置き換わる
- 置き換え後の文字に探す文字が含まれていても、処理が繰り返されない
- コンポジションを開いていないとき、FIND が空のときは何も変えずに止まる
実際のプロジェクトで使う前には、複製したプロジェクトで試してください。
使う前に知っておくこと
リファレンスでは、TextDocument のフォントなどの書式の値は、テキストレイヤーの最初の文字だけを表すと説明されています。
1つのレイヤーの中で文字ごとにフォントや色を変えている場合、置き換えた後で書式が変わらないか、実行後に確かめてください。
大文字と小文字は区別して探します。
置き換えの対象は文字だけで、レイヤー名やコンポジション名は変わりません。
スクリプトを登録してメニューから呼び出す方法は、After Effectsのスクリプトランチャーも参考にしてください。
編集メニューの「テキストの検索と置換…」について
After Effects 2026(26.5)の日本語の文字列ファイルには、編集メニューの項目として「テキストの検索と置換…」が入っています。
同じファイルには、これを試験的な機能として「選択したテキストレイヤーをまたいで、ソーステキストのキーフレームも含めて検索・置換できる」という趣旨で説明する文字列もあります。
ただし、2026年10月18日の時点で、Adobeの新機能の一覧(26.5まで)とヘルプには、この機能の説明が見当たりませんでした。
文字列ファイルでは、この説明はベータ版の機能(BetaFeature)の項目として入っています。
2026年10月19日に、この機の After Effects 2026(26.5)で編集メニューを開いたところ、この項目はありませんでした(上の編集メニューの画像のとおりです)。
お使いの After Effects(ベータ版を含む)の編集メニューにこの項目があれば、スクリプトより先に試してみる価値があります。
確かめていないこと
- macOS 版での操作と表示
- 文字パネルのサイズや色の欄に値を入れたときの動き(確かめたのはフォントスタイルの変更だけ)
- アニメーションメニューの「エクスプレッションを追加」からエクスプレッションを入れる操作
- 文字ごとに書式が違うレイヤーで、置き換え後に書式がどうなるか
- BOMのないUTF-8で保存したスクリプトで、日本語の FIND と REPLACE が正しく読まれるか
- 付属のスクリプトの Find All と、記号を含む語を探したときの動き
- ベータ版の After Effects で、編集メニューの「テキストの検索と置換…」がどう動くか
参照したページは、Adobe:文字パネルでの文字の書式設定、Adobe:テキストレイヤーの作成と編集、Adobe:テキストプロパティの編集とアクセス、After Effects Scripting Guide:Property objectです。
