Skip to content

Instantly share code, notes, and snippets.

@macneko-ayu
Created June 21, 2025 06:32
Show Gist options
  • Save macneko-ayu/b5d5de67eb06da9a57d9a46c903c6824 to your computer and use it in GitHub Desktop.
Save macneko-ayu/b5d5de67eb06da9a57d9a46c903c6824 to your computer and use it in GitHub Desktop.
Claude CodeとCursorにExtendScriptを書かせてみた。プロンプトは「シンプルなInDesign用のスクリプトを記述したいです。新規ドキュメントを作成して開くスクリプトを実装してください」
// Cursor版
//
// 「メソッド「add」のパラメーター「documentPreset」の値が無効です。予想される値は DocumentPreset ですが、値 PORTRAIT を受け取りました。」
// というエラーで動かない。
// エラーメッセージを渡して修正を依頼しても見当違いな修正を行い、何回か試したが結局動かないまま
// 以下、生成されたコード
// InDesign用 カスタム新規ドキュメント作成スクリプト
// 詳細な設定で新規ドキュメントを作成するスクリプト
// カスタムドキュメント作成関数
function createCustomDocument() {
try {
// ドキュメント設定
var docWidth = 210; // A4幅(mm)
var docHeight = 297; // A4高さ(mm)
var docOrientation = PageOrientation.PORTRAIT; // 縦向き
var docFacingPages = true; // 見開きページ
var docPages = 1; // ページ数
var docStartPage = 1; // 開始ページ番号
// 新規ドキュメントを作成
var newDoc = app.documents.add(
docFacingPages, // 見開きページ
docOrientation, // ページ方向
docPages, // ページ数
docWidth, // 幅
docHeight, // 高さ
docStartPage // 開始ページ番号
);
// ドキュメントをアクティブにする
newDoc.activate();
// 成功メッセージを表示
alert("カスタム設定で新規ドキュメントが作成されました。\nサイズ: " + docWidth + "mm × " + docHeight + "mm");
} catch (error) {
// エラーハンドリング
alert("エラーが発生しました: " + error.message);
}
}
// メイン実行
createCustomDocument();
// Claude Code版
//
// 一発で動いて感動。
// $.writeln を使うのが渋い。
// が、実行時に確認できないのでエラー時にAlertを表示してくれると望ましい。
// これは Claude.md に書いてもらうことで今後は発生しないかも?
// 以下、生成されたコード
// InDesign用新規ドキュメント作成スクリプト
// Adobe InDesignで新しいドキュメントを作成し、開きます
try {
// 新しいドキュメントを作成
var newDoc = app.documents.add();
// ドキュメントの基本設定
newDoc.documentPreferences.pageWidth = "210mm"; // A4サイズの幅
newDoc.documentPreferences.pageHeight = "297mm"; // A4サイズの高さ
newDoc.documentPreferences.pageOrientation = PageOrientation.PORTRAIT;
// マージンの設定(上下左右 20mm)
var marginPrefs = newDoc.marginPreferences;
marginPrefs.top = "20mm";
marginPrefs.bottom = "20mm";
marginPrefs.left = "20mm";
marginPrefs.right = "20mm";
// ドキュメントが正常に作成されたことを確認
if (newDoc.isValid) {
$.writeln("新規ドキュメントが正常に作成されました。");
$.writeln("ページサイズ: " + newDoc.documentPreferences.pageWidth + " × " + newDoc.documentPreferences.pageHeight);
$.writeln("ページ向き: " + (newDoc.documentPreferences.pageOrientation == PageOrientation.PORTRAIT ? "縦" : "横"));
// ドキュメントをアクティブにする
app.activeDocument = newDoc;
$.writeln("ドキュメントがアクティブになりました。");
}
} catch (error) {
$.writeln("エラーが発生しました: " + error.message);
$.writeln("行番号: " + error.line);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment