汎用化して引数で動作モードを切り替えようかとも思うのだが・・・
引数の判定ロジックの方が本体より長くなりそうなのでやめた。
カーソル位置から最初のエントリまで選択マーク
//!*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();