InDesignのセクションマーカーを一括登録するJavaScript(CS〜)

セクションマーカーを入力していく手間をちょっとだけ省きます。すでにセクションは作成されていることが前提です。
自分の作業で使うために作ったので汎用性は微妙ですが、あまりにブログを書いてないのでたまには更新しようと思い立った次第。

実行するとこんなダイアログが出るので、カンマ区切りで入力します。

数が足りないと怒られます。
動作確認はWindows版CS4でしかしていませんが、たぶんCS以降なら動くんじゃないかと……

(function(){

  var defaultArrStr = "1,2,3,4,5,6,7,8,9";

  var secs = app.activeDocument.sections;
  var secsLength = secs.length;

  var dlg = app.dialogs.add({name:"セクションマーカー一括設定"});
  var col = dlg.dialogColumns.add();
  
  col.dialogRows.add().staticTexts.add({staticLabel:"セクションマーカーを入力してください。"});
  col.dialogRows.add().staticTexts.add({staticLabel:"半角カンマ区切りで " + secsLength + " 個以上必要です。"});
  var textbox = col.dialogRows.add().textEditboxes.add({editContents:defaultArrStr,minWidth:200});

  var getArr = function(){
    if( dlg.show() ) {
      var arr = textbox.editContents.split(",");
      if ( arr.length < secsLength ) {
        alert("マーカーの数が足りません!");
        getArr();
      }
      else {
        return arr;
      }
    }
  }

  var markerArr = getArr();

  if ( !markerArr ) { return; }

  for ( var i = 0, len = secs.length; i < len; i++ ) {
    secs[i].marker = markerArr[i];
    alert("セクション「" + secs[i].marker + "」 : " + secs[i].pageNumberStart + "ページから");
  }

  dlg.destroy();

})();

コメント入れるのサボってます。

最初のdefaultArrStrの値を変えると、ダイアログにあらかじめ入力されてるテキストが変わります。
このあたりもうちょっとまじめに作りこんだら使い勝手が良くなる気がします……特定のスタイル(見出しなど)のついたテキストを自動で放り込むとか。そもそもそのスタイルついてたらセクションを自動で作成するとか。