汎用化して引数で動作モードを切り替えようかとも思うのだが・・・
引数の判定ロジックの方が本体より長くなりそうなのでやめた。
カーソル位置から最初のエントリまで選択マーク
//!*script // カーソル位置から最初のエントリまで選択マーク Ver 2.0 // ============================================================ var i = 0; // ループインデックス; var sI = 0; // 開始インデックス var eI = 0; // 終了インデックス var EntryObj = PPx.Entry; // PPxエントリコレクション sI = 1; eI = PPx.EntryIndex; for (i=sI;i<=eI;i++) { EntryObj.Index = i; EntryObj.Mark = 1; } PPx.Quit();
カーソル位置から最後のエントリまで選択マーク
//!*script // カーソル位置から最後のエントリまで選択マーク Ver 2.0 // ============================================================ var i = 0; // ループインデックス; var sI = 0; // 開始インデックス var eI = 0; // 終了インデックス var EntryObj = PPx.Entry; // PPxエントリコレクション sI = PPx.EntryIndex; eI = EntryObj.count; // マークループ処理 for (i=sI;i<=eI;i++) { EntryObj.Index = i; EntryObj.Mark = 1; } PPx.Quit();
最後にマークしたエントリからカーソル位置まで選択マーク
//!*script //!*script // A-B間選択マーク Ver 1.2 // A点:マークエントリ ※事前にマークが必要 // B点:カーソル位置エントリ // ============================================================ var i = 0; // ループインデックス; var sI = 0; // 開始インデックス var eI = 0; // 終了インデックス var EntryObj = PPx.Entry; // PPxエントリコレクション var RetCD = ''; // 戻り値ワーク var command = ''; // PPxコマンドワーク // マークチェック if (PPx.EntryMarkCount == 0) { command = '%"' + (PPx.ScriptName).replace(/^.+\\(.+$)/,'$1') + '"' + '%:%I"マークなしエラー。"'; PPx.Execute(command); PPx.Quit(-1); } // マーク位置取得 RetCD = EntryObj.LastMark; if (RetCD != 1) { command = '%"' + (PPx.ScriptName).replace(/^.+\\(.+$)/,'$1') + '"' + '%:%I"内部エラー。カーソル移動に失敗しました。"'; PPx.Execute(command); PPx.Quit(-1); } // A-B点チェック if (PPx.EntryIndex == EntryObj.Index) { command = '%"' + (PPx.ScriptName).replace(/^.+\\(.+$)/,'$1') + '"' + '%:%I"カーソル位置指定エラー。"'; PPx.Execute(command); PPx.Quit(-1); } // ループ点確定 if (PPx.EntryIndex > EntryObj.Index) { sI = EntryObj.Index + 1; eI = PPx.EntryIndex; } else { sI = PPx.EntryIndex; eI = EntryObj.Index - 1; } // マークループ処理 for (i=sI;i<=eI;i++) { EntryObj.Index = i; EntryObj.Mark = 1; } // 後処理 PPx.Quit();