Amazonで商品を見るセール会場へ

Photoshopスクリプト(jsx)│位置を変えずに文字を中央揃えにする方法

ポイント文字の段落揃えを変えると、基準点に対する文字の配置が変わることがあります。この記事では、揃えを変更した前後の文字範囲を比較して位置を補正するスクリプトを扱います。

そこで、スクリプトを活用してテキストの位置を保持したまま中央揃えに変更する方法を紹介します。

スクリプトを活用してPhotoshopでテキストの位置を保持したまま中央揃えに変更する動作イメージ。

以下は2026年10月23日に見直したコードです。対象はアクティブなポイント文字レイヤー1つで、複数レイヤーを一括処理する旧版とは異なります。座標計算・入力確認・単位復元は模擬環境で確認しましたが、この修正版はPhotoshop実機では未確認です。元PSDを保管し、複製した文書で試してください。

2026年10月16日には、当時の旧コードをWindows 11 Pro(10.0.26200)のPhotoshop 27.11.0(日本語表示)で実行し、左揃えの文字レイヤー1つで見える位置が変わらなかった記録があります。以下の実測は旧コードの限定結果で、現在掲載している10月23日修正版の動作確認ではありません。

目次

スクリプトの導入方法

STEP.1 スクリプトを作成

  1. 以下のコードをコピーしてテキストエディタなどに貼り付けます。
  2. AlignTextCenter.jsx という名前で保存します。

Photoshopのほかの操作は、まとめからご覧いただけます。

位置を変えずに中央揃えにするスクリプト

AlignTextCenter.jsx

#target photoshop
function cgmCenterPointText() {
    if (!app.documents.length) {
        alert('文字のある文書を開いてください。');
        return;
    }
    var doc = app.activeDocument;
    var layer = doc.activeLayer;
    if (layer.typename !== 'ArtLayer' || layer.kind !== LayerKind.TEXT ||
        layer.textItem.kind !== TextType.POINTTEXT) {
        alert('ポイント文字のレイヤーを1つ選んでください。');
        return;
    }
    if (layer.allLocked || layer.positionLocked) {
        alert('文字レイヤーのロックを確認してください。');
        return;
    }
    var units = app.preferences.rulerUnits;
    try {
        app.preferences.rulerUnits = Units.PIXELS;
        doc.suspendHistory('位置を補正して中央揃え', 'cgmCenterPointTextMain()');
    } catch (e) {
        alert('処理を完了できませんでした。文書を確認し、必要なら取り消してください。\n' + e.message);
    } finally {
        app.preferences.rulerUnits = units;
    }
}
function cgmCenterPointTextMain() {
    var layer = app.activeDocument.activeLayer;
    var before = layer.bounds;
    var x = before[0].as('px');
    var y = before[1].as('px');
    layer.textItem.justification = Justification.CENTER;
    var after = layer.bounds;
    layer.translate(new UnitValue(x - after[0].as('px'), 'px'),
                    new UnitValue(y - after[1].as('px'), 'px'));
}
cgmCenterPointText();

STEP.2 スクリプトファイルを所定フォルダに配置

  1. AlignTextCenter.jsx を以下のフォルダに保存
C:\Program Files\Adobe\Adobe Photoshop CC\Presets\Scripts\
  1. Photoshopを再起動します。

フォルダーに置いて再起動し、メニューから実行する方法は、2026年10月16日の確認には含めていません。

STEP.3 スクリプトを実行

  1. 位置を変更せずに中央揃えにしたいテキストレイヤーを選択します。
  2. [ファイル] → [スクリプト] → [AlignTextCenter] を実行します。
  3. 修正版は中央揃えへ変更した後、文字範囲の左上を元の座標へ補正する処理です。実機では再確認していないため、実行前後の範囲を比べ、ずれた場合は保存せず取り消してください。

2026年10月16日の確認では、800×300pxの自作のPSDに、Arial(24pt)のポイント文字を2つ置いて使いました。

上の「CENTER CHECK」(レイヤー名TARGET)だけを選び、下の「REFERENCE」は位置を比べるために選ばずに残しています。

どちらも左揃えで、PSDの作成と前後の数値の読み取りは、画面操作ではなく自動処理で行いました。

この10月16日の結果は当時掲載していた旧コードを[参照]から実行した記録です。現在掲載している10月23日修正版の実測ではありません。旧コードは移動差分を逆符号で渡す構造と単位設定の順序に問題があるため、この1件の成功記録を一般的な再現性の保証にはできません。

Photoshopで、CENTER CHECKのTARGETレイヤーだけを選び、下にREFERENCEの文字を置いた実行前の画面
2026-10-16撮影。Adobe Photoshop 27.11.0 (20260929.r.26 8c16e56)、Windows 11 Pro (10.0.26200)。実行前。上のCENTER CHECK(TARGET)だけを選び、下のREFERENCEは比較用に残した。画面のうちカンバスと右側のパネルの部分を切り出した。

実行すると、通知やエラーは出ずに、TARGETの段落の揃えが中央揃えに変わりました。

画面上の文字の位置は変わらず、文字の範囲は実行の前後とも、左431px・上92px・右620px・下111pxでした。

代わりに、文字の基準点が右へ95px動いています。

中央揃えでは基準点が文字の中央に来るので、見える位置を保つために基準点のほうが移った形です。

選んでいない「REFERENCE」は、左揃えのまま位置も変わりませんでした。

実行後もCENTER CHECKの見える位置が変わらず、プロパティパネルの段落で中央揃えが選ばれているPhotoshopの画面
2026-10-16撮影。Adobe Photoshop 27.11.0 (20260929.r.26 8c16e56)、Windows 11 Pro (10.0.26200)。当時掲載していた旧コードを[参照]から実行した後。文字の見える位置は変わらず、プロパティパネルの段落では中央揃えが選ばれている。段落の欄は撮影のために開いた。画面の一部を切り出した。
項目実行前実行後
選んだ文字の揃え左揃え中央揃え
選んだ文字の範囲(左・上・右・下)431・92・620・111px431・92・620・111px
選んだ文字の基準点(X・Y)430・110px525・110px
選んでいない文字の揃え左揃え左揃え
選んでいない文字の範囲(左・上・右・下)432・212・577・231px432・212・577・231px
2026年10月16日、Windows 11 Pro(10.0.26200)/Photoshop 27.11.0/日本語UIで確認。800×300px・72ppiの自作PSDで、当時掲載していた旧コードを変えずに[参照]から実行した結果。

旧コードは処理の後で定規単位をピクセルへ切り替え、元へ戻しませんでした。修正版は処理前にピクセルへ切り替え、終了時や例外時に元の単位へ戻します。位置補正は「変更前の座標−変更後の座標」をそのまま移動量にし、小数を整数に丸めません。

今回は実行前からピクセルだったため、ほかの単位から切り替わる場合は確かめていません。

複数のテキストレイヤーを選んだとき、左揃えや右揃えに書き換えたときの動作は、今回は確かめていません。

段落テキスト、改行や縦書き、変形や効果を付けた文字、ロックしたレイヤーも、今回は確かめていません。

文字以外のレイヤーを一緒に選んだとき、背景レイヤーがない文書、取り消しで戻す操作も、今回は確かめていません。

スポンサーリンク

オプション(左揃え・右揃え)

初期状態では中央揃えになっていますが、スクリプト内のJustification.CENTERを変更することで、左揃え・右揃えにも変更可能です。

//var just = Justification.LEFT;
//var just = Justification.RIGHT;

修正版のlayer.textItem.justification = Justification.CENTER;のCENTERをLEFTまたはRIGHTに置き換える方法です。上のコメント例を追加するだけでは変更されません。書き換えた版も実機未確認です。

GitHubの掲載版と10月23日修正版は同一とは限りません。過去のコードはGitHubのMOTOKI-LLC/cg-method-codeにもまとめています。

文字とフォントの記事は、ほかにもあります。

スポンサーリンク

まとめ

  • ポイント文字では、段落揃えの変更で基準点に対する文字の位置が変わることがある
  • スクリプトを使うと、元の位置を保持したまま中央揃えが可能
  • 修正版はアクティブなポイント文字レイヤー1つが対象
  • 左揃え・右揃えにも変更可能

このスクリプトを活用して、Photoshopでのテキスト配置作業を効率化しましょう。

よくある質問:テキストの位置を変えずに中央揃えにする

このスクリプトでは何ができますか?

アクティブなポイント文字レイヤー1つを中央揃えに変更し、変更前後の範囲の差で位置を補正するコードです。現在掲載している10月23日修正版は模擬環境での確認のみで、Photoshop実機では未確認です。10月16日の実測は旧コードの限定結果なので、修正版の動作確認と区別してください。左揃え・右揃えへ書き換えた版も実機未確認です。

なぜスクリプトが必要なのですか?

段落揃えを変えたときの文字範囲の移動を、前後の座標差で補正するためです。10月23日修正版はアクティブなポイント文字1つを処理します。模擬確認のみで、Photoshop実機の再試験は未実施です。

どのテキストレイヤーが対象になりますか?

修正版の対象はアクティブなポイント文字レイヤー1つです。複数を選択しても一括処理はしません。段落テキストや文字以外は処理を中止します。10月16日の実測は旧コードで1つだけを処理した記録です。

左揃えや右揃えにするにはどうしますか?

修正版のJustification.CENTERをJustification.LEFTまたはJustification.RIGHTへ置き換えます。変更後の実機動作は未確認です。

スクリプトはどのように導入しますか?

記事のコードをコピーしてテキストエディタなどに貼り付け、AlignTextCenter.jsxという名前で保存します。記事で案内しているフォルダに保存し、Photoshopを再起動してください。

どうやって実行しますか?

位置を変えずに中央揃えにしたいテキストレイヤーを選択し、[ファイル] → [スクリプト] → [AlignTextCenter] を実行します。修正版は中央揃えへ変更した後に座標差を補正します。今回の修正版は実機未確認なので、複製した文書で前後の位置を確認してください。2026年10月16日の確認では、フォルダーには置かず、[ファイル]→[スクリプト]→[参照]から保存したファイルを選んで実行しました。

スクリプトのコードはどこで確認できますか?

記事内に掲載しているほか、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。

メニューの表示や名称が記事と違う場合はどうすればよいですか?

Photoshopのバージョンによってメニューの名称や配置が変わることがあります。最新の操作手順は、Adobeの公式情報で確認してください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Photoshopのおすすめ書籍

動作要件とPCの確認項目

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次