範囲指定で異なった数字に置換するマクロNo.06647
でがらし さん 11/06/29 22:02
 
 範囲指定で、ある種類の数字を別の種類の数字に置換するマクロを作りました。ウ
ェブから、いくつかの部品を組み込んでいます。しかし、思ったように動きません。
別の種類の数字が新しいファイルに作られますが、元のファイルの数字は範囲指定さ
れるだけで、そのままです。どういうふうに修正したらいいのか、教えていただけな
いでしょうか? 

 このマクロで行いたいのは、下記の置換です。秀丸Ver.8.04を使っています。

@  −>  1)
A  −>  2)
B  −>  3)

=======================================
// 検索バッファと置換バッファを保存
   $s = searchbuffer;
   #f = searchoption;
   $r = replacebuffer;

copy2;
newfile;
paste;

  replaceallfast "@" , "  1)" ;
  replaceallfast "A" , "  2)" ;
  replaceallfast "B" , "  3)" ;
  replaceallfast "C" , "  4)" ;
  replaceallfast "D" , "  5)" ;
  replaceallfast "E" , "  6)" ;
  replaceallfast "F" , "  7)" ;
  replaceallfast "G" , "  8)" ;
  replaceallfast "H" , "  9)" ;
  replaceallfast "I" , "  10)" ;
  replaceallfast "J" , "  11)" ;
  replaceallfast "K" , "  12)" ;
  replaceallfast "L" , "  13)" ;

//  escapeinselect;                 // 選択範囲の置換を解除
setsearch $s,#f;                // 検索バッファと置換バッファを戻す
setreplace $r;
selectall;
copy2;

endmacro;

[ ]
RE:06647 範囲指定で異なった数字に置換すNo.06649
秀まるお2 さん 11/06/30 10:55
 
 置換した後の結果を元のウィンドウに反映しないといけないので、マクロとし
ては、setactivehidemaruとかを使って処理しないといけないと思います。

 僕の方で直したマクロの例です。

// 検索バッファと置換バッファを保存
   $s = searchbuffer;
   #f = searchoption;
   $r = replacebuffer;

if( !selecting ) {
    message "範囲選択してから実行してください。";
    endmacro;
}

#hidemaru = hidemaruhandle(0);

copy2;
newfile;
#hidemaru2 = hidemaruhandle(0);
paste;

  replaceallfast "@" , "  1)" ;
  replaceallfast "A" , "  2)" ;
  replaceallfast "B" , "  3)" ;
  replaceallfast "C" , "  4)" ;
  replaceallfast "D" , "  5)" ;
  replaceallfast "E" , "  6)" ;
  replaceallfast "F" , "  7)" ;
  replaceallfast "G" , "  8)" ;
  replaceallfast "H" , "  9)" ;
  replaceallfast "I" , "  10)" ;
  replaceallfast "J" , "  11)" ;
  replaceallfast "K" , "  12)" ;
  replaceallfast "L" , "  13)" ;

//  escapeinselect;                 // 選択範囲の置換を解除
setsearch $s,#f;                // 検索バッファと置換バッファを戻す
setreplace $r;
selectall;
copy2;

setactivehidemaru #hidemaru;
paste;
closehidemaruforced #hidemaru2;

endmacro;

[ ]
RE:06649 成功:お礼No.06651
でがらし さん 11/06/30 12:27
 
 マクロ、頂戴しました。希望通りの動きをします。ありがとうございました。

 この手の範囲指定で数字の種類を変換するマクロは、他にも作っていますが、同じ
問題に頭を悩ましていました。今回、頂戴したマクロを元にして修正します。お礼ま
で申し上げます。

[ ]