1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

InDesign Script 西暦に和暦を追加

1
Posted at

西暦に和暦を追加。

/*
このスクリプトを利用して起こった不具合の責任は取れません。
ご了承下さい。
*/

// アプリ指定
#target "indesign";

// スクリプト名
var scriptName = "西暦に和暦を追加";

// 求和暦関数
function queryWarek(gengou, gannen, owariNoToshi, year){
    if (year >= gannen && year <= owariNoToshi) {
        var wareki = gengou;
        var warekiNen = year - (gannen - 1);

        if(warekiNen == 1){
            wareki += "";
        }else{
            wareki += warekiNen;
        }
        return wareki;
    }else{
        return "";
    }
}

//スクリプトの動作指定(一つのアンドゥ履歴にする、及び、アンドゥ名)
app.doScript(function () {

    // ダイアログ
    var dialogueFlg = confirm("しても良いかな?"
    ,"", scriptName);

    // Noの場合
    if (dialogueFlg == false) {
        // 終了
        exit();
    }

    // 初期化
    app.findGrepPreferences = NothingEnum.NOTHING;
    app.changeGrepPreferences = NothingEnum.NOTHING;

    // 「4桁の西暦 + 年」を検索
    app.findGrepPreferences.findWhat = "(\\d{4})年";
    var found = app.activeDocument.findGrep();

    for (var i = 0; i < found.length; i++) {
        // 検索結果文字
        var text = found[i].contents;
        
        // 数字部分を抽出
        var year = parseInt(text.match(/\d{4}/)[0], 10);
        
        // 和暦に変換
        var wareki = "";
        {
            var meijiGannen = 1868; // 明治元年
            var taisyouGannen = 1912; // 大正元年
            var syouwaGannen = 1926; // 昭和元年
            var heiseiGannen = 1989; // 平成元年
            var reiwaGannen = 2019; // 令和元年

            // 明治
            wareki += queryWarek("明治", meijiGannen, taisyouGannen, year);

            // 大正
            wareki += queryWarek("大正", taisyouGannen, syouwaGannen, year);

            // 昭和
            wareki += queryWarek("昭和", syouwaGannen, heiseiGannen, year);

            // 平成
            wareki += queryWarek("平成", heiseiGannen, reiwaGannen, year);

            // 令和
            wareki += queryWarek("令和", reiwaGannen, 9999, year);
        }

        // 追加
        found[i].contents += "" + wareki + "";
    }

// 後処理
app.findGrepPreferences = NothingEnum.NOTHING;
app.changeGrepPreferences = NothingEnum.NOTHING;

//スクリプトの動作指定の続き
}, ScriptLanguage.JAVASCRIPT, [scriptName], UndoModes.ENTIRE_SCRIPT, scriptName);
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?