Skip to content

Instantly share code, notes, and snippets.

@kingtosh
Forked from monokano/英数全角にする.jsx
Created December 24, 2025 07:51
Show Gist options
  • Select an option

  • Save kingtosh/0bf3dd77d9c66c51d42e4338095baf91 to your computer and use it in GitHub Desktop.

Select an option

Save kingtosh/0bf3dd77d9c66c51d42e4338095baf91 to your computer and use it in GitHub Desktop.

Revisions

  1. @monokano monokano revised this gist Sep 25, 2025. 1 changed file with 8 additions and 5 deletions.
    13 changes: 8 additions & 5 deletions 英数全角にする.jsx
    Original file line number Diff line number Diff line change
    @@ -21,9 +21,13 @@ function toFullWidth(theRange) {

    // メイン処理関数
    function main() {
    // 再描画を無効にして高速化
    // 再描画を無効
    app.scriptPreferences.enableRedraw = false;

    // 検索設定を保存(注:スタイルグループ内のスタイルが格納されないバグあり)
    var saveFindPrefs = app.findGrepPreferences.properties;
    var saveChangePrefs = app.changeGrepPreferences.properties;

    try {
    // 初期化
    app.findGrepPreferences = NothingEnum.nothing;
    @@ -46,11 +50,10 @@ function main() {
    }
    }

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

    } finally {
    // 検索設定を復元
    app.findGrepPreferences.properties = saveFindPrefs;
    app.changeGrepPreferences.properties = saveChangePrefs;
    // 再描画を有効に戻す
    app.scriptPreferences.enableRedraw = true;
    }
  2. @monokano monokano created this gist Sep 18, 2025.
    60 changes: 60 additions & 0 deletions 英数全角にする.jsx
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,60 @@
    // 選択テキストを英数全角にする

    function toFullWidth(theRange) {
    // 初期化
    app.findTransliteratePreferences = NothingEnum.nothing;
    app.changeTransliteratePreferences = NothingEnum.nothing;

    // 文字種変換の設定
    app.findTransliteratePreferences.findCharacterType = FindChangeTransliterateCharacterTypes.HALF_WIDTH_ROMAN_SYMBOLS;
    app.changeTransliteratePreferences.changeCharacterType = FindChangeTransliterateCharacterTypes.FULL_WIDTH_ROMAN_SYMBOLS;

    // 文字種変換を実行
    for (var i = 0; i < theRange.length; i++) {
    theRange[i].changeTransliterate();
    }

    // 初期化
    app.findTransliteratePreferences = NothingEnum.nothing;
    app.changeTransliteratePreferences = NothingEnum.nothing;
    }

    // メイン処理関数
    function main() {
    // 再描画を無効にして高速化
    app.scriptPreferences.enableRedraw = false;

    try {
    // 初期化
    app.findGrepPreferences = NothingEnum.nothing;
    app.changeGrepPreferences = NothingEnum.nothing;

    // 現在の選択を取得
    var currentSelection = app.selection;

    if (currentSelection.length > 0) {
    // 英数字のパターンを設定 欧字和字を区別しない
    app.findGrepPreferences.findWhat = "[\\l\\u\\d]+";

    // 選択範囲で検索実行
    var searchTarget = currentSelection[0];
    var foundItems = searchTarget.findGrep();

    if (foundItems.length > 0) {
    // 見つかったテキストを変換
    toFullWidth(foundItems);
    }
    }

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

    } finally {
    // 再描画を有効に戻す
    app.scriptPreferences.enableRedraw = true;
    }
    }

    // doScriptを使用してUndo履歴をまとめる
    app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "英数字を全角に変換");