|
陸さんこんにちは。横から失礼いたします。
ちょっとマクロを組んでみました。BOX選択後に実行すると、選択範囲各行の範囲開
始位置より右に何も文字がない場合は範囲から除外する動作をします。
もしよければ試してみてください。
//マクロここから末尾まで
//複数選択対応マクロのおまじない
setcompatiblemode 0x00100000;
if(!rectselecting){
//BOX選択中でなければ何もしない
endmacro;
}else{
//選択範囲を覚えておく
#x1 = seltopx;
#x2 = selendx;
#y1 = seltopy;
#y2 = selendy;
escape;
#y=#y1;
// BOX選択範囲各行内の処理ループ
while(#y <= #y2){
//選択範囲開始点xの次の文字を取得
if(gettext(#x1, #y, #x1+2, #y, 1) != ""){
moveto #x1, #y;
beginrectmulti;
// 選択範囲の先頭のみを選択しなおす(キー入力で挿入する)
moveto #x1, #y;
// 選択範囲をそのままにする(キー入力で上書きされてしまう)
//if(strlen(gettext(#x2, #y, #x2+1, #y, 1)) == 2){
// // 範囲末尾の全角文字が半角分はみ出ている場合、半角分範囲を広げる
// moveto #x2+1, #y;
//}else{
// moveto #x2, #y;
//}
endsel;
reservemultisel;
}
#y = #y + 1;
}
selectreservedmultisel;
}
|
|