見出し画像

イラレで1桁の数字だけ全角にするよ

概要

\コンニチワ/
理由はわからないけど一桁の数字は全角で、二桁以上は半角で、そんな意味不明なルールがあるとかないとか、そのあたりも曖昧な雰囲気で誰が決めたのかさえわからない、だけどそこには確実に存在しているそんな世界のお話。
いちいち手動で変換するのは大変なのでスクリプトでやっちゃいましょう。
※当方はプログラマーではないので内容は怪しいかもです。

スクリプト作成手順

  1. コードエディタ(テキストエディタやメモ帳でもいいかも)で「スクリプト名.jsx」というファイルを作ります(スクリプト名は好きに命名してください)

  2. そこにコードを書いて保存してください

  3. (macの場合)アプリケーションフォルダ→Adobe Illustrator(version)→Presets→ja_JP→スクリプトの中に先程のファイルを入れてください

  4. パスワードを求められるので入力して完成

  5. イラレを起動してファイル→スクリプトの中にあります。

※この手順はどのスクリプトを入れる際でも同じですよ。

コード

#target illustrator

function main() {
    if (app.documents.length == 0) {
        alert("ドキュメントないよ!");
        return;
    }

    var doc = app.activeDocument;
    var selection = doc.selection;

    if (!(selection instanceof Array) || selection.length == 0) {
        alert("テキストフレーム選んでよ!");
        return;
    }

    var textFrame = selection[0];
    if (!(textFrame instanceof TextFrame)) {
        alert("それテキストフレームじゃないよ!");
        return;
    }

    var dialog = new Window("dialog", "数字変えるよ");
    var optionsPanel = dialog.add("panel", undefined, "どうしたいの?");
    optionsPanel.orientation = "column";
    optionsPanel.alignChildren = "left";

    var oneDigitOnlyCheckbox = optionsPanel.add("checkbox", undefined, "一桁だけ全角");
    var allToHalfCheckbox = optionsPanel.add("checkbox", undefined, "全て半角");
    var allToFullCheckbox = optionsPanel.add("checkbox", undefined, "全て全角");

    oneDigitOnlyCheckbox.value = true;

    var convertButton = dialog.add("button", undefined, "変えるよ!");

    convertButton.onClick = function() {
        var text = textFrame.contents;

        if (oneDigitOnlyCheckbox.value) {
            text = text.replace(/(\b\d\b)/g, function (match) {
                return "0123456789".charAt(parseInt(match));
            });
        } else if (allToHalfCheckbox.value) {
            text = text.replace(/[0-9]/g, function (match) {
                return "0123456789".charAt("0123456789".indexOf(match));
            });
        } else if (allToFullCheckbox.value) {
            text = text.replace(/\d/g, function (match) {
                return "0123456789".charAt(parseInt(match));
            });
        }

        textFrame.contents = text;
        dialog.close();
    };

    oneDigitOnlyCheckbox.onClick = function() {
        allToHalfCheckbox.value = false;
        allToFullCheckbox.value = false;
    };

    allToHalfCheckbox.onClick = function() {
        oneDigitOnlyCheckbox.value = false;
        allToFullCheckbox.value = false;
    };

    allToFullCheckbox.onClick = function() {
        oneDigitOnlyCheckbox.value = false;
        allToHalfCheckbox.value = false;
    };

    dialog.show();
}

main();

イラレを立ち上げて対象のテキストフレームを選択した状態で、ファイル→スクリプトでコレを選択するとダイアログが開きます。
変換パターン3種類から選んでボタンを押すと変換されると思います。

最後に

特別スクリプトなどに詳しいわけじゃないので、一応「使うのは自己責任でお願いします」ということにします。
また詳しい人が見たらツッコミどころもあるかもしれませんね。
以上です。

この記事が気に入ったらサポートをしてみませんか?