前回と同じ条件付きテキストフレーム選択です。
前回は色によって選択処理を行いました。今回はテキストフレームに特定の文字や単語が含まれる場合にテキストフレームを選択するスクリプトです。
function mainProc(){
if (app.documents.length < 1){
alert("ドキュメントを開いてから実行してください");
return;
}
var textObj = app.activeDocument.textFrames;
if (textObj.length < 1){
alert("選択すべきテキストフレームがありません");
return;
}
var findText = prompt("検索したい文字の一部を入れてください", "");
for(var i=0; i<textObj.length; i++){
textObj[i].selected = false;
if(textObj[i].contents.indexOf(findText) > -1){
textObj[i].selected = true;
}
}
}
mainProc();
すでに選択されているパスやテキストフレームの選択を解除したくない場合には以下の行を削除してください。
textObj[i].selected = false;
文字が含まれる場合に選択するのではなく、逆に文字が含まれていない場合(例えば「です」が含まれていない)に選択するスクリプトは以下のようになります。
function mainProc(){
if (app.documents.length < 1){
alert("ドキュメントを開いてから実行してください");
return;
}
var textObj = app.activeDocument.textFrames;
if (textObj.length < 1){
alert("選択すべきテキストフレームがありません");
return;
}
var findText = prompt("選択したくない文字の一部を入れてください", "");
for(var i=0; i<textObj.length; i++){
textObj[i].selected = true;
if(textObj[i].contents.indexOf(findText) > -1){
textObj[i].selected = false;
}
}
}
mainProc();