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

Photoshop│外からJSXを実行する方法|WindowsのCOM(DoJavaScriptFile)とMacのAppleScript

Photoshop のスクリプト(JSX)は、Photoshop のメニューからだけでなく、ほかのプログラムから実行することもできます。

  • Windows:COM の Photoshop.Application の DoJavaScriptFile で JSX を実行する
  • Mac:AppleScript の do javascript で JSX を実行する
  • 引数は Array(…) や with arguments { … } で渡し、JSX 側では arguments[0] で受け取る
  • 本記事では、確認できたCOM・AppleScriptの方法を扱う。起動オプション-rによる実行は未検証

この記事は、Adobe の Photoshop Scripting Guide と JavaScript Reference(本記事で参照した2020年版)にもとづいています。

2026年10月19日に、Photoshop 2026(27.11.0)とWindows 11 Proで、WindowsのCOM(PowerShellとVBScript)から実行して確かめました。

MacのAppleScriptは、Macが無いため確かめていません。

結果は「Photoshop 2026で実行した結果」にまとめています。

目次

Windows:COMで実行する

Windows では、Photoshop を COM(Photoshop.Application)で操作できます。

公式ガイドの VBScript の例です。

Set objApp = CreateObject("Photoshop.Application")
filename = "C:\MyFile"
DIM docRef
SET docRef = objApp.Open(filename)
objApp.DoJavaScriptFile "C:\emboss.jsx", Array(75, 2, 89)
メソッド働き
DoJavaScript(コード, 引数, 実行モード)JavaScript のコードを文字列で渡して実行する
DoJavaScriptFile(ファイル, 引数, 実行モード)JSX ファイルを実行する
Photoshop VBScript Reference(2020年版)をもとに作成

PowerShellから呼ぶ

本記事で参照した2020年版のWindows向け例はVBScriptです。以下のPowerShell例は、そのCOM呼び出しを置き換えたものです。

COM は PowerShell からも呼べるので、上の VBScript を置きかえると次のような書き方になります。

2026年10月19日にPhotoshop 2026(27.11.0)で、JSXのパスだけを手元の場所に変えて実行し、動くことを確かめました。

$ps = New-Object -ComObject Photoshop.Application
$ps.DoJavaScriptFile("C:\scripts\emboss.jsx", @(75, 2, 89))

JSX側で引数を受け取る

var angle = arguments[0];
var height = arguments[1];
var amount = arguments[2];

渡した引数は、JSX の中で arguments[0] のように受け取れると、公式ガイドに書かれています。上の3行は値を受け取るだけで、エンボスを実行するコードではありません。公式ガイド79〜80ページの例では、emboss関数の定義に加え、emboss(arguments[0], arguments[1], arguments[2]);という呼び出しをファイル末尾に置きます。

拡張子は .jsx にする

Windowsで.jsをダブルクリックしたときの動作は、ファイルの関連付けによって変わります。2020年版の公式ガイドは、Windows Script Hostで実行される場合との混同を避けるため.jsxを勧めています。Photoshopの[ファイル]→[スクリプト]→[参照]では.jsも選べます。

検証に使ったWindows 11 Proでも、.jsの関連付けはJSFileで、開くプログラムはWindows Script Host(WScript.exe)でした。

ダブルクリックでの実行そのものは試していません。

スポンサーリンク

Photoshop 2026で実行した結果

2026年10月19日に、Photoshop 2026(27.11.0)、Windows 11 Pro(10.0.26200)、Windows PowerShell 5.1で確かめました。

上のPowerShellの2行は、JSXのパスだけを変えて.ps1に保存し、PowerShellの窓から実行しました。

呼び出すJSXは、上の「JSX側で引数を受け取る」の3行の後ろに、受け取った値でエンボスを掛けて結果の文字列を返す処理を当方で書き足したものです。

練習用の画像(800×500ピクセルのPNG)は自作し、Photoshopで開いておく操作はスクリプトで行ったので、確認に含めていません。

PowerShellの2行で引数が渡り、戻り値が返る

Windows PowerShellの窓。2行のスクリプトの中身と、実行して返った文字列 angle=75 (number) height=2 amount=89 doc=practice.png が表示されている
2026-10-19撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。Windows PowerShell 5.1から、COMのDoJavaScriptFileで引数75・2・89を渡してJSXを実行した画面。JSXの最後の式の値が文字列で返った。

JSXのarguments[0]〜arguments[2]には、75・2・89が数値(number)として届きました。

JSXの最後の式の値が、DoJavaScriptFileの戻り値として文字列(System.String)で返りました。

戻り値を変数に入れれば、PowerShell側で結果を確かめられます。

Photoshopのカンバスを左右に並べた画像。左は赤い円・青い四角・緑の三角・CGMの文字の練習画像、右は同じ画像に灰色のエンボスが掛かった状態
2026-10-19撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。PowerShellから実行する前(左)と後(右)のカンバス。JSXが受け取った値でエンボスが掛かった。

開いていた画像にエンボスが掛かり、ヒストリーには「エンボス」が1つ増えました。

実行は1.3秒ほどで終わり、Photoshopの画面にダイアログは出ませんでした。

JSXの警告が出ている間は、PowerShellも待つ

スクリプト警告の窓。arguments.length = 3、arguments[0] = 75 (number)、arguments[1] = 2 (number)、arguments[2] = 89 (number) と表示されている
2026-10-19撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。PowerShellから引数を渡し、受け取った値をalertで表示したJSXの窓。[OK]を押すまでPowerShell側も待った。

受け取った値をalertで表示するJSXを同じ引数で呼ぶと、Photoshopに「スクリプト警告」の窓が出ました。

DoJavaScriptFileは、この窓の[OK]を押すまで戻りませんでした(今回は約20秒待ちました)。

人が見ていないところで動かすJSXでは、alertやconfirmのような窓を出さないようにします。DoJavaScript/DoJavaScriptFileの第3引数ExecutionModeは、デバッガーを表示する条件の指定です。2020年版VBScript Referenceでは1が表示しない、2がエラー時、3が実行前です。alertやconfirmを抑制する設定ではありません。

DoJavaScriptで文字列のコードを実行する

コードを文字列で渡すDoJavaScriptも、PowerShellから試しました。

試したこと結果
$ps.DoJavaScript("app.documents.length")開いている文書の数「1」が文字列で返った
$ps.DoJavaScript("arguments[0] + arguments[1]", @(1, 2))「3」が返った(数値として足された)
@(75, 2.5, 'テキスト', $true)を渡すJSX側では数値・数値・文字列・真偽値として届いた
引数を渡さないarguments.lengthは0
最後がvar x = 1;のコード戻り値は空ではなく、文字列の「undefined」
3つ目の引数に1を渡すエラーにならず、2つ目までと同じように実行された
ファイルのパスを文字列で渡すnew File(arguments[0])で、そのファイルが見つかった
2026年10月19日、Photoshop 2026(27.11.0)、Windows PowerShell 5.1で実行した結果

JSXのエラーは、PowerShellの例外になる

Windows PowerShellの窓。存在しない関数を呼ぶJSXを実行し、エラー 24とライン: 2を含む赤いエラーメッセージが表示されている
2026-10-19撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。JSXの中でエラーが起きたときのPowerShellの画面。Photoshopの画面には窓が出ず、PowerShellの例外として返った。

2行目で存在しない関数を呼ぶJSXを実行すると、PowerShellに赤い文字でエラーが出ました。

メッセージには「エラー 24」と「ライン: 2」、止まった行のコードが入っていました。

Photoshopの画面にはエラーの窓は出ず、PowerShellのtry〜catchでCOMExceptionとして受け取れました。

3つ目の引数に1を渡しても、同じエラーが同じ形で返りました。

存在しないJSXのパスを渡したときは、無効な引数 - 引数 1・既存のファイル / フォルダーへの参照が必要というエラーになりました。

公式のVBScriptの例も動いた

上の公式ガイドのVBScriptも、2つのパスだけを練習用の画像と同じJSXに変えて、cscriptで実行しました。

Photoshopで画像が開き、エンボスが掛かって、ヒストリーは「開く」「エンボス」の順でした。

起動時のフォルダーは、この機には無かった

下の「起動時に自動で実行する」で書いているPhotoshop用のフォルダーは、検証に使った機にはありませんでした。

同じ「Startup Scripts CC」の中には、「Illustrator 2026」と「Adobe After Effects」のフォルダーだけがありました。

このフォルダーを作るには管理者の権限が要るので、作ってJSXを置く方法は試していません。

確かめていないこと

MacのAppleScript(do javascript・show debugger・osascript)は、Macが無いため確かめていません。

Pythonなど、PowerShellとVBScript以外からの呼び出しも試していません。

3つ目の引数の2・3(デバッガーを出す指定)、Photoshopが起動していない状態からの呼び出し、起動時のフォルダーに置く方法も試していません。

Mac:AppleScriptで実行する

Mac では、AppleScript の do javascript で、コードか JSX ファイルを実行できます。

公式ガイドの例です。<path to Emboss.jsx>だけでなく、開く画像を指定するApplication:Documents:MyFileも自分のファイルに合わせて置き換える必要があります。掲載例はそのまま実行できる完成コードではなく、今回Macでの構文・実行確認はしていません。

tell application "Adobe Photoshop"
      set theFile to alias "Application:Documents:MyFile"
      open theFile
      do javascript (file <path to Emboss.jsx>) ¬
            with arguments { 75,2,89 }
end tell

show debugger で、デバッガーを出すタイミング(before running・never・on runtime error)も決められます。

ターミナルからは、この AppleScript を osascript で実行する方法がありますが、osascript は macOS の標準のコマンドで、本記事で参照したAdobe資料には、その呼び出し例はありません。

起動時に自動で実行する

2020年版の公式ガイドには、起動時にStartup Scriptsフォルダーの.jsxを実行する仕組みが説明されています。以下はその旧資料の設定で、Photoshop 2026での動作を確かめた手順ではありません。

Windows の場所は C:\Program Files\Common Files\Adobe\Startup Scripts CC\Adobe Photoshop です。

2026年10月19日に確かめたところ、Photoshop 2026(27.11.0)を入れた機には、このフォルダーはまだありませんでした。

使うときは管理者の権限でフォルダーを作る必要がありそうですが、当方では作って試していません。

よくある勘違い

  • photoshop.exe -r script.jsxは、本記事で参照したPhotoshop資料では確認できず、実行も試していない。ほかのAdobe製品の起動オプションをそのまま適用しない
  • UXP のスクリプト(.psjs)を COM や AppleScript から実行する公式の方法は見つからなかった

Photoshop のメニューから実行する方法は、PhotoshopでJSXスクリプトを実行する方法で紹介しています。

スポンサーリンク

まとめ

  • Windows は COM の Photoshop.Application と DoJavaScriptFile
  • Mac は AppleScript の do javascript
  • 引数は Array や with arguments で渡し、JSX で arguments[0] で受け取る
  • Startup Scriptsは2020年版資料の方法。この記事では現行版の起動時実行を未検証

参考:Adobe「Photoshop Scripting Guide」「VBScript Reference」「AppleScript Reference」(2020年版)。現在の基本的な実行方法はAutomate Photoshop with scriptsでも確認できます。2026年10月24日の本文見直しでは、過去の実機結果を保持し、Startup Scriptsとファイル関連付けの条件を補足しました。実機での再実行はしていません。

よくある質問:PhotoshopのJSXを外部から実行する

PhotoshopのJSXは、メニュー以外からも実行できますか?

できます。Windowsでは、COM(Photoshop.Application)のDoJavaScriptFileでJSXを実行できます。Macでは、AppleScriptのdo javascriptでJSXを実行できます。

Windowsでは、どうやって呼びますか?

COMのPhotoshop.Applicationを使います。

公式ガイドのVBScriptの例では、DoJavaScript(コード, 引数, 実行モード)がJavaScriptのコードを文字列で渡して実行し、DoJavaScriptFile(ファイル, 引数, 実行モード)がJSXファイルを実行します。

本記事が参照した2020年版のWindows向け例はVBScriptで、掲載したPowerShell例はそのCOM呼び出しを置き換えたものです。

2026年10月19日にPhotoshop 2026(27.11.0)で、PowerShellと公式のVBScriptの例(パスだけ変更)の両方から実行できることを確かめました。

JSXの最後の式の値は文字列で返り、JSXのエラーはPowerShellの例外になりました。

JSXに、値(引数)を渡すには?

引数は、Array(…)やwith arguments { … }で渡し、JSX側ではarguments[0]のように受け取れると、公式ガイドに書かれています。

拡張子は、.jsと.jsxのどちらにしますか?

.jsxを使うとWindowsの.jsの関連付けとの混同を避けられます。.jsのダブルクリック時の動作はPCの設定によります。Photoshopの[スクリプト]→[参照]からは.jsも実行できます。

Macでは、どうやって実行しますか?

AppleScriptのdo javascriptで、コードかJSXファイルを実行できます。公式ガイドの例では、<path to Emboss.jsx>が原文のままの仮の書き方で、実際のパスに置きかえます。show debuggerで、デバッガーを出すタイミング(before running・never・on runtime error)も決められます。ターミナルからは、このAppleScriptをosascriptで実行する方法がありますが、osascriptはmacOSの標準のコマンドで、本記事で参照したAdobe資料には、その呼び出し例はありません。

Photoshopの起動時に、自動で実行できますか?

2020年版ガイドにはStartup Scriptsの.jsxを起動時に実行する説明があり、Windowsの場所はC:\Program Files\Common Files\Adobe\Startup Scripts CC\Adobe Photoshopです。ただし10月19日の確認環境にはそのフォルダーがなく、作成して実行するテストはしていません。現行版での動作を確認済みとは扱っていません。

photoshop.exe -r script.jsx のような起動オプションは、使えますか?

本記事で参照したPhotoshop資料では、その起動オプションを確認できていません。実行も試していないため、利用可能な手順としては案内していません。また、UXPのスクリプト(.psjs)をCOMやAppleScriptから実行する公式の方法は見つからなかったと書かれています。

記事の内容は、実際に確認されたものですか? 最新はどこで確認しますか?

記事は、AdobeのPhotoshop Scripting GuideとJavaScript Reference(本記事で参照した2020年版)にもとづいています。

Windowsの部分は、2026年10月19日にPhotoshop 2026(27.11.0)とWindows 11 Proで実行して確かめました。

MacのAppleScriptの部分は、Macが無いため確かめていません。

Photoshopのメニューから実行する方法は、関連記事「PhotoshopでJSXスクリプトを実行する方法」で紹介されています。

最新はAdobe公式の資料で確認してください。

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

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

Photoshopのおすすめ書籍

動作要件とPCの確認項目

周辺機器の優先度

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