文字変換マクロNo.06202
ho さん 00/07/21 12:40
 
hoです。

文字を「全角⇔半角」とかに変換したいのですが、文字種別を指定して変換
するマクロって無いでしょうか?
「ひらがな」だけとか「英数字だけ」とか。

また「大文字⇔小文字」の変換マクロはありませんか?

一応「ベクター」で探してみたのですが、該当するものを見つけられません
でした。

--
Ogura mailto:xxxxx@lilac.ocn.ne.jp

[ ]
RE:06202 文字変換マクロNo.06204
ENCODINGSHIFTJIS さん 00/07/21 14:27
 

自分で入力での場合なら かな漢字変換の設定ですませることもできます。
常用の 英数は半角 とか カタカナは半角 に設定
少量なら そこを選択してかな漢字変換機能の 再変換に入るとできます。

秀丸なら ヘルプの 目次>その他編集系コマンド>その他変換
       メニューの  その他>コマンド一覧>その他編集
けっこう見つけにくいかも
ヘルプの量は Wordのように巨大じゃないからすぐ頭に入ります。

マクロはマクロ集もあります。複数がまとまった物は探しにくいが

[ ]
RE:06204 文字変換マクロNo.06207
秀丸担当 さん 00/07/21 18:45
 
>秀丸なら ヘルプの 目次>その他編集系コマンド>その他変換
>       メニューの  その他>コマンド一覧>その他編集

ということですが、変換系のコマンドは、範囲選択した状態で、
編集→変換 のサブメニューの中にあります。

[ ]
RE:06202 文字変換マクロNo.06211
山紫水明 さん 00/07/22 11:09
 
    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;
//----------------------------------------------------------------//

[ ]