|
haruさん,こんばんは。
》 具体的には、Cells(x,y) です。配列とすれば、Cells というも
》のだけです。x、yは任意の数字です。yの先頭にスペースが入る
》ときもあります。
ここでは配列か否かということは関係なくて,対象となる数字をテキスト上で
どう定義するかが問題です。
数字を加える必要があるので,タグ付き置換ではうまくいかないと思います。
》Cells(i, 32) = Cells(i,13) + Cells(i,14) + Cells(i,15).Text
定義1.右側に ")" が来る数字だけをを対象とする。
この場合は,
//------------------------------------
gofiletop;
disabledraw;
while( 1 ) {
searchdown2 "[0-9]+\\)", regular;
if( !result ) break;
cut;
beginclipboardread;
$a = getclipboard;
$a = leftstr( $a, strlen( $a )- 1 );
insert str( val( $a ) + 1 ) + ")";
}
endmacro;
//------------------------------------
この場合は,()で囲まれた数字も変換されます。それで具合悪ければ,
定義2.左側に "," か半角スペース,かつ右側に ")" が来る数字
この場合は,多分2段階の操作が必要でしょう。
//------------------------------------
disabledraw;
$s = ",";
call Plus;
$s = " ";
call Plus;
endmacro;
Plus:
gofiletop;
while( 1 ) {
searchdown2 $s + "[0-9]+\\)", regular;
if( !result ) break;
cut;
beginclipboardread;
$a = getclipboard;
$a = midstr( $a, 1, strlen( $a )- 2 );
insert $s + str( val( $a ) + 1 ) + ")";
}
return;
//------------------------------------
なお,汎用として次のようなマクロを2回実行する方法もあります。
1回目 前文字 "," 後文字 ")" 増分 1
2回目 前文字 " " 後文字 ")" 増分 1
//-----------------------------------------------------//
//特定文字に挟まれた数字の増減をする
$left = input( "前文字", "(" );
$right = input( "後文字", ")" );
#plus = val( input( "増分(負数も可)", "1" ) );
if( !#plus ) endmacro;
disabledraw;
if(strstr(".()[]|", $left) > -1 ) $left2 = "\\" + $left;
else $left2 = $left;
if(strstr(".()[]|", $right) > -1 ) $right2 = "\\" + $right;
else $right2 = $right;
#left = strlen($left);
#right = strlen($right);
gofiletop;
while( 1 ) {
searchdown2 $left2 + "[-0-9]+" + $right2, regular;
if( !result ) break;
cut;
beginclipboardread;
$a = getclipboard;
$a = midstr( $a, #left, strlen( $a ) - #left - #right );
insert $left + str( val( $a ) + #plus ) + $right;
}
endmacro;
//-----------------------------------------------------//
では, (^^)/~
山紫水明
|
|