10年ほど前から、楽しく自動化を始めて、仕事にしています。

インデザインで『本体価格』から『税額』『税込み価格』を計算して入れるジャバスクリプト

インデザインでテンプレートを作成します。本体価格を入れるところにスクリプトラベルに”basePrice”、税額は”taxAmount”、税込み価格は”priceWithTax”を設定。

インデザインで自動で動かすときは、スクリプトラベル。イラレは属性。

スクリプト

// ユーザーに入力を求める(価格を入力してください)
var input_price = prompt("価格を入力してください:", "1000");

if (input_price) {
    // 消費税率(例: 10%の場合は0.1)
    var tax_rate = 0.1;

    // 入力された価格を数値に変換
    var price = parseFloat(input_price);

    if (!isNaN(price)) {
        // 計算: 本体価格、税額、税込み価格(小数点以下を切り捨て)
        var tax_amount = Math.floor(price * tax_rate); // 税額
        var price_with_tax = Math.floor(price + tax_amount); // 税込み価格

        // アクティブなドキュメント内の全てのページアイテムをループ処理
        for (var i = 0; i < app.activeDocument.allPageItems.length; i++) {
            var item = app.activeDocument.allPageItems[i];

            try {
                // 各ページアイテムのラベルに基づいて内容を設定
                if (item.label === "basePrice") {
                    item.contents = "本体価格: " + Math.floor(price) + "円";
                } else if (item.label === "taxAmount") {
                    item.contents = "税額: " + tax_amount + "円";
                } else if (item.label === "priceWithTax") {
                    item.contents = "税込み価格: " + price_with_tax + "円";
                }
            } catch (e) {
                // エラーが発生した場合にアラートを表示
                alert("アイテムの内容設定時にエラーが発生しました: " + e.message);
            }
        }
    } else {
        alert("正しい数値を入力してください。");
    }
}

スクリプトを実行すると、ポップアップで数字を入れる、小さい画面が出ます。

OKを押すと実行されます。

try { … } catch (e) { … }構文について。

try { … } ブロック
問題が発生する可能性のあるコードをここに記述します。
このブロック内でエラーが発生すると、catchブロックに処理が渡されます。

catch (e) { … } ブロック
エラーが発生した場合でもプログラムの実行を継続し、エラーに適切な対応を行うために使用します。アラートを出したりすると、エラー内容を簡単に確認できます。

コメント

この記事へのコメントはありません。

ランキング
開発・運営ランキング
にほんブログ村 IT技術ブログへ
にほんブログ村 IT技術ブログ Tipsへ
にほんブログ村 IT技術ブログ JavaScriptへ
にほんブログ村 IT技術ブログ VBAへ
PAGE TOP