Thanks to visit codestin.com
Credit goes to gist.github.com

Skip to content

Instantly share code, notes, and snippets.

@monokano
Last active September 25, 2025 01:59
Show Gist options
  • Save monokano/a162241d604410e0575edd0c70aaa16d to your computer and use it in GitHub Desktop.
Save monokano/a162241d604410e0575edd0c70aaa16d to your computer and use it in GitHub Desktop.
選択テキストの数字とアルファベットのみを全角にするInDesign用スクリプト
// 選択テキストを英数全角にする
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;
// 検索設定を保存(注:スタイルグループ内のスタイルが格納されないバグあり)
var saveFindPrefs = app.findGrepPreferences.properties;
var saveChangePrefs = app.changeGrepPreferences.properties;
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);
}
}
} finally {
// 検索設定を復元
app.findGrepPreferences.properties = saveFindPrefs;
app.changeGrepPreferences.properties = saveChangePrefs;
// 再描画を有効に戻す
app.scriptPreferences.enableRedraw = true;
}
}
// doScriptを使用してUndo履歴をまとめる
app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "英数字を全角に変換");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment