|
hoさん こんにちは。
》文字を「全角⇔半角」とかに変換したいのですが、文字種別を指定して変換
》するマクロって無いでしょうか?
》「ひらがな」だけとか「英数字だけ」とか。
一緒に変換するのは簡単ですが,文字種を指定するとなるとマクロということに
なりますね。
「ひらがな」の半角は私のところではありませんので,カタカナを対象にしまし
た。
》また「大文字⇔小文字」の変換マクロはありませんか?
これは,もともとのコマンドに,TO LOWER CASE TO UPPER CASE というのがあ
ります。
これも含めて次のようなものを作ってみました。おためし下さい。
では, (^^)/~
山紫水明
//--------- 文字置換.Mac -----------------------------------//
// 2000.7.22
call Save_search;
disableinvert;
if(!selecting){
question "全文で置換しますか?";
if(!result) endmacro;
else selectall;
}
#bx=seltopx; #by=seltopy;
#ex=selendx; #ey=selendy;
Mojimenu:
menu "文 字 の 置 換",
"1) 英字大文字に",
"2) 英字小文字に",
"3) 英数字全角に",
"4) 英数字半角に",
"5) カタカナ全角に",
"6) カタカナ半角に";
#r = result;
if(#r > 3) {escape; moveto #ex, #ey;}
if(#r == 0) endmacro;
else if(#r == 1 || #r > 7) goto Mojimenu;
else if(#r == 2) toupper;
else if(#r == 3) tolower;
else if(#r == 4) call ToEisuzenkaku;
else if(#r == 5) call ToEisuhankaku;
else if(#r == 6) call ToZenkakukata;
else if(#r == 7) call ToHankakukata;
redraw;
escape;
call Reset_search;
endmacro;
ToEisuzenkaku:
while(1){
escape;
searchup "[A-Za-z]+", regular;
if(result == 0 || y < #by) break;
tozenkakuhira;
escape;
}
return;
ToEisuhankaku:
while(1){
searchup "[A-Za-z]+", regular;
if(result == 0 || y < #by) break;
tohankaku;
escape;
}
return;
ToZenkakukata:
while(1){
searchup "[ヲ-ン]+", regular;
if(result == 0 || y < #by) break;
tozenkakukata;
escape;
}
return;
ToHankakukata:
while(1){
searchup "[ァ-ヶ]+", regular;
if(result == 0 || y < #by) break;
tohankaku;
escape;
}
return;
Save_search: //検索状態を保存・変更
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;
}
return;
//----------------------------------------------------------------//
|
|