【InDesign】丸数字の番号を上下するスクリプト | Blue-Scre{7}n.net | よそいちのDTPメモ

トップページ » InDesign » 【InDesign】丸数字の番号を上下するスクリプト

【InDesign】丸数字の番号を上下するスクリプト

公開日:2018年4月19日 

 丸数字の番号を1ずつ上下するスクリプトです※。途中で丸数字の項目に削除の指定が入り、他の番号を動かさないといけないときなどに有効です。

※[箇条書き]機能を使っている場合は、このスクリプトの出番は少ないでしょう。

操作手順

1.スクリプトを実行すると、「丸数字をひとつずらす」ウインドウが表示されます※。

※「palette」で表示しているので、ウインドウを閉じない限りはずっと表示されています。各種パネルのような感じで使えるということで。

スクリプトを実行title=”スクリプトを実行”/>

2.テキストの丸数字を選択して、[▲]ボタンをクリックすると、丸数字の番号が上がります。[▼]ボタンでは番号が下がります。

スクリプト本文

ダウンロード

/*
選択している文字が丸数字なら次の番号にする
動作チェックは、Windows10/InDesign CS5、Mac10.11、InDesign CC 2018で行なっています。
黒丸数字、51以降の丸数字には非対応
  */
#target indesign
#targetengine "MaruSuu"
//UI表示
var decW = new Window("palette","丸数字をひとつずらす",[0,0,170,120]);
  decW['plus']=decW.add('button', [20,20,145,50],"▲");
  decW['minus']=decW.add('button', [20,70,145,100],"▼");
  decW.center();
  var diaShow=decW.show();
  decW['plus'].onClick=function(){
        plus();
        decW.destroy();
        }
  decW['minus'].onClick=function(){
        minus();
        decW.destroy();
        }
//選択文字のユニコード番号を呼び出す
function CHARCODE(){
  var doc=app.activeDocument;
  var sel=doc.selection[0];
  var con=sel.contents;
  var StC=con.charCodeAt(0).toString(16);
  return [sel,StC] ;//選択したオブジェクトの種類と文字のコード番号を返す
  }
//番号増やす
function plus(){
  var m=CHARCODE();
  var RNUC=["2460","2461","2462","2463","2464","2465","2466",
      "2467","2468","2469","246a","246b","246c","246d","246e",
      "246f","2470","2471","2472","2473",  "3251","3252","3253",
      "3254","3255","3256","3257","3258","3259","325a","325b","325c",
      "325d","325e","325f","32b1","32b2","32b3","32b4","32b5",
      "32b6","32b7","32b8","32b9","32ba","32bb","32bc","32bd","32be","32bf"];
      //①-㊿までをユニコードで取得
  if(m[0].constructor.name=="Character"){
      for(var i = 0; i < RNUC.length-1; i++){//50でストップ
        if(RNUC[i] === m[1]){
          i++;
          var UCtC=parseInt("0x"+RNUC[i],16);
          m[0].contents=String.fromCharCode(UCtC)
          break;
        };
      };
    }else{
      //文字を選択していなかった場合はスルー
      };
}
//番号減らす
function minus(){
  var m=CHARCODE();
  var RNUC=["2460","2461","2462","2463","2464","2465","2466",
      "2467","2468","2469","246a","246b","246c","246d","246e",
      "246f","2470","2471","2472","2473",  "3251","3252","3253",
      "3254","3255","3256","3257","3258","3259","325a","325b","325c",
      "325d","325e","325f","32b1","32b2","32b3","32b4","32b5",
      "32b6","32b7","32b8","32b9","32ba","32bb","32bc","32bd","32be","32bf"];
      //①-㊿までをユニコードで取得
  if(m[0].constructor.name=="Character"){
      for(var i = RNUC.length; i  >0; i--){//1でストップ
        if(RNUC[i] === m[1]){
          i--;
          var UCtC=parseInt("0x"+RNUC[i],16);
          m[0].contents=String.fromCharCode(UCtC)
        };
      };
    }else{
      //文字を選択していなかった場合はスルー
      };
};

 return文を初めて使いました。

 ところで、このスクリプト書くために「配列内に特定のものがないか探す方法」をググっていて、ECMAScript 5では配列に対してindexOf()が使えることがわかったんですが、Adobeのアプリで使えるのはまだECMAScript 3(1999年の規格)なので配列.indexOf()は使えず頭から探す方法に。

 新しいQuarkXPressではこういうところに目をつけてきたのか、ECMAScript 8対応でスクリプトが使えるようなので、どうかAdobeさんも対応お願いします…

50音をひとつ前に/後にするスクリプト

 こちらは丸数字上げ下げの派生版で、“選択している文字が「あ」なら「い」にする”のように50音を前後の音にするものです。

 [あ-ん]は[箇条書き]機能で付加できない自動番号スタイルなので、このスクリプトはそれを少しでも補うためのものです。

 手順は丸数字上げ下げと同様なので割愛します。

 [<]ボタンでひとつ前の音に、[>]でひとつ後の音になります。

ダウンロード


タグ: | 


広告