|
og さん,TAKAさん,こんにちは。
og さんのあつかわれているデータがよくわからないので何ともいえませんが,
TAKA さんの示された データの限りでは次のようにマクロを改造すればで何とかな
りそうです。
では, (^^)/~
山紫水明
//--------- 文字変換.Mac -----------------------------------//
// 全角半角大小変換 Ver.4
call Save_search;
disabledraw;
if(!selecting){
disableinvert;
question "全文で変換しますか?";
if(!result) endmacro;
else selectall;
}
if( rectselecting ) #rectsel = 1; //BOX 範囲選択の場合
#bx=seltopx; #by=seltopy;
#ex=selendx; #ey=selendy;
#rs = 1; //BOX 選択で範囲外だったら 0 にする
Mojimenu:
menu "文 字 の 変 換",
"A) 英字大文字に",
"B) 英字小文字に",
" 《全角に変換》",
"C) 英 数 字",
"D) 英 字",
"E) 数 字",
"F) カタカナ",
" 《半角に変換》",
"G) 英 数 字",
"H) 英 字",
"I ) 数 字",
"J) カタカナ";
#r = result;
if(#r > 3) {escape; moveto #ex, #ey;}
if(#r == 0) endmacro;
else if(#r == 1 ||#r == 4 || #r == 9) goto Mojimenu;
else if(#r == 2) toupper;
else if(#r == 3) tolower;
else if(#r == 5){$replace = "[A-Za-z0-9]"; call ToZenkaku;}
else if(#r == 6){$replace = "[A-Za-z]"; call ToZenkaku;}
else if(#r == 7){$replace = "[0-9]"; call ToZenkaku;}
else if(#r == 8){$replace = "[ヲ-ン]"; call ToZenkaku;}
else if(#r == 10){$replace = "[A-Za-z0-9]"; call ToHankaku;}
else if(#r == 11){$replace = "[A-Za-z]"; call ToHankaku;}
else if(#r == 12){$replace = "[0-9]"; call ToHankaku;}
else if(#r == 13){$replace = "[ァ-ヶ]"; call ToHankaku;}
if( !#rectsel ) $replace = $replace + "+";
escape;
redraw;
call Reset_search;
endmacro;
ToZenkaku:
while(1){
searchup $replace, regular;//
if(result == 0 || y < #by || (y == #by && x < #bx)) break;
if( #rectsel ) call RS;
if( #rs ) tozenkakukata;
escape;
}
return;
ToHankaku:
while(1){
searchup $replace, regular;//
if(result == 0 || y < #by || (y == #by && x < #bx)) break;
if( #rectsel ) call RS;
if( #rs ) tohankaku;
escape;
}
return;
RS:
if( x >= #bx && x < #ex ) #rs = 1; else #rs = 0;
return;
Save_search: //検索状態を保存・変更
$sb = searchbuffer;
#so = searchoption;
if (!searchmode) { // 検索状態を範囲選択に変更
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "SelectFound",1;
#modechange = 1;
envchanged;
closereg;
}
return;
Reset_search: //検索状態を元に戻す
if (#modechange) {
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "SelectFound",#s_mode;
envchanged;
closereg;
}
setsearch $sb, #so;
return;
// 2000.7.22 Ver.1
// 2000.7.24 Ver.2
// 2001.6.23 Ver.3
// 2001.7.8 Ver.4
//----------------------------------------------------------------//
GO HIDESOFT
|
|