====== 選択範囲があるか判定するスクリプト ======
Photoshop上に選択範囲があるかを判定するスクリプトです。
選択範囲があるか判定する方法によっては、Adobe Configratorで作成したパネルから判定が効かない場合があります。
Adobe Photoshop CS5, CS6で動作確認済み。Adobe Configrator 3で作成したPhotoshop CS5用のエクステンションパネルでも問題なく動作します。
#target Photoshop
var docRef = app.activeDocument;
function checkSelection() {
var flag = true;
try {
docRef.selection.bounds;
} catch (e) {
flag = false;
}
return flag;
}
if (checkSelection()) {
alert("選択範囲があります。");
} else {
alert("選択範囲がありません。");
}
Adobe Configrator 3(Photoshop CS5用のエクステンションパネル上)では、下記のコードはうまく動作しません。
Adobe ExtendScript ToolKit CS5からの実行では、動作します。
#target Photoshop
function checkSelection() {
var flag = true;
try {
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putProperty(charIDToTypeID("Chnl"), charIDToTypeID("fsel"));
desc.putReference(charIDToTypeID("null"), ref);
executeAction(charIDToTypeID("Trnf"), desc, DialogModes.NO);
} catch (e) {
flag = false;
}
return flag;
}
if (checkSelection()) {
alert("選択範囲があります。");
} else {
alert("選択範囲がありません。");
}