マクロ実行後[大文字/小文字の区別]のチェNo.05357
Papageno さん 06/11/30 21:03
 
山紫水明さんの
全角半角大小文字変換マクロ Ver4.4(付マクロ取り消しマクロ)
http://hide.maruo.co.jp/lib/macro/zenhandaisho44.html
を単機能に削って[全角英数字小カッコ→半角]
だけのマクロを作ってみました。

// 全角英数字小カッコ→半角 zeneisu2han.mac
#ox = x;    #oy = y; // カーソル位置を保存
if( selecting ) {
    #ox = seltopx;  #oy = seltopy;
}

disabledraw;
if( !selecting ) {
    disableinvert;
    selectall;
}
if( rectselecting ) #rectsel = 1; // BOX範囲選択の場合
#bx = seltopx;    #by = seltopy;
#ex = selendx;    #ey = selendy;
#rs = 1; // BOX選択で範囲の内外を判定
escape;
moveto #ex, #ey;
while( true ) { // 全角英数字小カッコ→半角
    searchup "[A-Za-z0-9,.()]", regular;
    if( result == 0 || y < #by || (y == #by && x < #bx) ) break;
    if( #rectsel ) call Rect_Selected; // BOX範囲選択なら置換する範囲内かの
チェック
    if( #rs ) tohankaku; // 置換する範囲内なら半角へ変換
    escape;
}
escape;
moveto #ex, #ey;
redraw;

enabledraw;
moveto #ox, #oy; // カーソル位置復帰
endmacro;

Rect_Selected:
if( x >= #bx && x < #ex ) #rs = 1; // 選択範囲の内
else #rs = 0;
return;

大文字/小文字の区別]のチェックされていない状態で
このマクロを実行した後検索・置換・grepウィンドウを表示
すると[大文字/小文字の区別]のチェックが入ってしまいます。

[大文字/小文字の区別]のチェックを保存しておいて、
マクロ実行後、チェックをマクロ実行前に戻すことができる
でしょうか?

秀丸エディタ Ver.6.06
HmJre.dll Ver.1.69
XP Pro. SP2

[ ]
RE:05357 マクロ実行後[大文字/小文字の区No.05358
Iranoan さん 06/11/30 23:34
 
 Papageno さん今日は、Iranoan です。
> [大文字/小文字の区別]のチェックを保存しておいて、
> マクロ実行後、チェックをマクロ実行前に戻すことができる
> でしょうか?
 setsearch, searchoption を使えば出来ますよ。マクロ・ヘルプご希望の動
作の実現方法例が書いてあるので、詳しくはそちらを御覧ください。

[ ]
RE:05358 マクロ実行後[大文字/小文字の区No.05359
Papageno さん 06/12/01 00:24
 
マクロ・ヘルプで[大文字/小文字の区別]を調べれば良いと思ったのは
はずれでした。

マクロ・ヘルプのsetsearch文の後ろに
$s = searchbuffer;
#f = searchoption;

マクロ本体…

setsearch $s, #f;
endmacro;
ってサンプルがありました。
ありがとうございました。

[ ]