マクロフォルダの複数指定No.00557
Micky さん 99/05/11 15:51
 
最近忙しくて読んでいなかったので、ダブっていたら
ごめんなさい。
一応過去に投稿されたものは探したつもりです。

さて、本題ですが、会社でみんなが共通に使えるような
マクロをサーバに置いています。
時々、自分専用にマクロを書いてローカルディスクに入れて
つかっているのですが、これがけっこう指定するのが
面倒になってきました。
そこで、その他→パス→環境変数の
マクロファイル用のフォルダに複数指定できないかと
思いました。

\\server\hidemru;c:\hidemac
とか
\\server\hidemru,c:\hidemac
とかやってみましたが、だめでした。
(server = サーバ名)

こんな事実現する方法はあるのでしょうか?

p.s.
マクロのディレクトリを選択するマクロも考えましたが、
どうも面倒になりそうで止めました。

[ ]
RE:00557 マクロフォルダの複数指定No.00558
番頭++ さん 99/05/11 17:05
 
現在 (Ver. 3.0x) 、多分、マクロのパスは一つだけです。
自分のレジストリの "MacroPath" を書きかえる、スワップするマクロを、
書くしかないと思います。
MacroPath2.ini とかを、サーバとか c:\Hidemaru にもって、
menu で出して、変更すると少しは便利になるかと思いますが 。。。

    //  マクロフォルダを知る !
    $wk1 = getinistr("hidemaru.ini","Env","MacroPath");
    if( $wk1 == "" ){   $wk1 = hidemarudir; }
    message $wk1;
    endmacro;

    //  マクロフォルダを変更する !
    $wk1 = getinistr("hidemaru.ini","Env","MacroPath");
    if( $wk1 == "" ){   $wk1 = hidemarudir; }
    $wk2 = input("MacroPath !",$wk1);
    if( ! result ){ endmacro;   }
    if( ! existfile($wk2+"\\.") ){  //  +"\\aruhazu1.mac" が硬い !!!
        message "おかしなフォルダです !";   endmacro;
    }
    writeinistr "hidemaru.ini", "Env", "MacroPath", $wk2;
    envchanged;
    endmacro;


[ ]
RE:00558 マクロフォルダの複数指定No.00559
Micky さん 99/05/11 17:50
 
コメントありがとうございます。

>現在 (Ver. 3.0x) 、多分、マクロのパスは一つだけです。
やはりそうですか。

>自分のレジストリの "MacroPath" を書きかえる、スワップするマクロを、
>書くしかないと思います。
スワップした場合って、登録して使用しているマクロは
絶対パスを書けばよいのですかね?

>MacroPath2.ini とかを、サーバとか c:\Hidemaru にもって、
>menu で出して、変更すると少しは便利になるかと思いますが 。。。
そうか、マクロで c:\hidemaru の一覧を出して、
その中から選んで実行すれば、パスを書き換えなくても
済みそうですね。

でも、そこまでやったことがないのでそのマクロを作るのに
時間がかかってしまいそうです。
その手のマクロって有りましたっけ?

[ ]
RE:00559 マクロフォルダの複数指定No.00560
番頭++ さん 99/05/11 18:05
 
>その手のマクロって有りましたっけ?

いま作りましたです、debugしてください。。。

//*5    MacroPath1.mac - 1999/05/11 - K.Nakatake

//  マクロフォルダを変更する !
//  このマクロは、フルパスを指定して「キー」に割り当てること !!!

//*5    MacroPath1.ini - 1999/05/11 - K.Nakatake
//  [MacroPath]
//  1=E:\HIDEMARU\MACRO
//  2=
//  3=
//  4=
//  5=e:\hidemaru

    $Macro_Dir1 = hidemarudir + "\\" + "MacroPath1.ini";
    if( ! existfile($Macro_Dir1) ){
        beep;
        $wk1 = "ERROR - INI ファイルを Hidemaru のディレクトリに置いて下さい !";
        $wk1 = $wk1 + "\n\n" + $Macro_Dir1 + " が必要です。";
        message $wk1;
        endmacroall;
    }
    $wk1 = getinistr("hidemaru.ini","Env","MacroPath");
    if( $wk1 == "" ){   $wk1 = hidemarudir; }
    $t_menu1[00] = "現在のマクロディレクトリ - " + $wk1;
    #i = 1;
    while( #i <= 5 ){
        $wk1 = getinistr($Macro_Dir1,"MacroPath",str(#i));
        $t_menu1[#i] = "(&" + str(#i) + ") " + $wk1;
        #i = #i + 1;
    }
    #t_menu1 = 1 + #i - 1;
    mousemenuarray $t_menu1, #t_menu1;
    if( iskeydown( 0x1B ) ){    endmacro;   }   //  [Esc]
    #menu1 = result - 1;
    #menu1_shift = iskeydown(0x10); //  [Shift]
    escape;
    if( #menu1 < 00 ){  //  [Esc]
        endmacro;
    } else if( #menu1 == 00 ){
    } else {
        $wk1 = midstr($t_menu1[#menu1],5,999);
        if( #menu1_shift || $wk1 == "" ){
            $wk2 = input("Type-in MacroPath !",$wk1);
            if( iskeydown( 0x1B ) ){    endmacroall;    }   //  [Esc]
            if( ! result ){ endmacro;   }
            if( $wk2 == "" ){
                writeinistr $Macro_Dir1, "MacroPath", str(#menu1), "";
                endmacro;
            }
            if( ! existfile($wk2+"\\.") ){  //  +"\\aruhazu1.mac" が硬い !!!
                message "おかしなフォルダです !";   endmacro;
            }
            $wk1 = $wk2;
            writeinistr $Macro_Dir1, "MacroPath", str(#menu1), $wk1;
    //R     writeinistr "hidemaru.ini", "Env", "MacroPath", $wk1;
    //R     envchanged;
        } else {
            if( $wk1 == "" ){   endmacro;   }
            if( ! existfile($wk1+"\\.") ){  //  +"\\aruhazu1.mac" が硬い !!!
                message "おかしなフォルダです !";   endmacro;
            }
            writeinistr "hidemaru.ini", "Env", "MacroPath", $wk1;
            envchanged;
        }
    }
endmacro;

[ ]
RE:00559 マクロフォルダの複数指定No.00566
番頭++ さん 99/05/12 13:41
 
> スワップした場合って、登録して使用しているマクロは
> 絶対パスを書けばよいのですかね?

そうです。フルパスというか絶対パスです。

> その手のマクロって有りましたっけ?

昨日はあわただしく勘違いマクロを作って、(今日の昼に削除しました、)
RES の意味を勘違いしていたみたいです。

ひょっとして、あちきの大きな思い込み、勘違いかも知れません。
「通常のマクロフォルダ (ディレクトリ) はサーバにあり、
自分のローカルなマクロフォルダのマクロを実行するのが不便だ ... 」
ということですか ???

これで、用は足りませんか ???

//*1    a3.mac
//  このマクロは、フルパス (絶対パス) を指定して「キー」に割り当てること !!!
//  をお勧めしますです。
    $mac_dir1 = hidemarudir;    //  Hidemaru のディレクトリ、(仮のマクロフォルダ)
//  $mac_dir1 = "c:\\hidemaru\\macro";  //  または、個人の環境にあわせる !!!
    $wk1 = input("Type-in Macro Name","");  //  .mac は不要です。
    if( ( ! result ) || $wk1 == "" ){   endmacro;   }
    if( iskeydown( 0x1B ) ){    endmacro;   }   //  [Esc]
    $wk2 = $mac_dir1 + "\\" + $wk1 + ".mac";
    if( ! existfile($wk2) ){
        message "そんなマクロはありません !\n\n" + $wk2;
        endmacro;
    }
//T message $wk2;
    execmacro $wk2; //  フルパスで、仮のマクロフォルダのマクロを実行 !!!
endmacro;

あちきはマクロを作成できるようになっても、
[マクロ(M)] - [マクロ実行(M)] - xxx1.mac 指定では不便に思えました。
宣伝ですが、ここのマクロライブラリに「マクロ機動隊」があります、
作成したマクロを開いて、他の「秀丸」の窓を対象としてマクロを実行する、
KZ_MEXec2.mac があります。試してみてください。


これが昨日の勘違いマクロです。

//*2    MacroPath1.mac - 1999/05/12 - K.Nakatake

    endmacroall;    //  危険なマクロ !!!

//  マクロフォルダ "MacroPath" を変更する処理 !
//  このマクロは、フルパス (絶対パス) を指定して「キー」に割り当てること !!!

//*2    MacroPath1.ini - 1999/05/11 - K.Nakatake
//  golinetop2; down 4; beginsel;   down 6;
//  replaceall "^//\[\x20\\t]*", "", regular, inselect;
//  次の [MacroPath] から 6 行の先頭の // とスペース、タブを取り除き、
//  MacroPath1.ini ファイルを作成して、Hidemaru のディレクトリに置くこと !!!
//  [MacroPath]
//  1=C:\HIDEMARU\MACRO
//  2=
//  3=
//  4=
//  5=C:\HIDEMARU

    $Macro_Dir1 = hidemarudir + "\\" + "MacroPath1.ini";
    if( ! existfile($Macro_Dir1) ){
        beep;
        $wk1 = "ERROR - INI ファイルを Hidemaru のディレクトリに置いて下さい !";
        $wk1 = $wk1 + "\n\n" + $Macro_Dir1 + " が必要です。";
        message $wk1;
        endmacroall;
    }

pp_retry1:
    $wk1 = getinistr("hidemaru.ini","Env","MacroPath");
    if( $wk1 == "" ){   $wk1 = hidemarudir; }
    $t_menu1[00] = "現在のマクロディレクトリ - " + $wk1;
    #t_max1 = 05;
    #i = 1;
    while( #i <= #t_max1 ){
        $wk1 = getinistr($Macro_Dir1,"MacroPath",str(#i));
        $t_menu1[#i] = "(&" + str(#i) + ") " + $wk1;
        #i = #i + 1;
    }
    #t_menu1 = 1 + #i - 1;
    mousemenuarray $t_menu1, #t_menu1;
    if( iskeydown( 0x1B ) ){    endmacro;   }   //  [Esc]
    #menu1 = result - 1;
    #menu1_shift = iskeydown(0x10); //  [Shift]
    escape;
    if( #menu1 < 00 ){  //  [Esc]
        endmacro;
    } else if( #menu1 == 00 ){
    } else if( #menu1 <= #t_max1 ){
        $wk1 = midstr($t_menu1[#menu1],5,999);
        if( #menu1_shift || $wk1 == "" ){
            $wk2 = input("Type-in MacroPath !",$wk1);
            if( iskeydown( 0x1B ) ){    endmacro;   }   //  [Esc]
            if( ! result ){ endmacro;   }
            if( $wk2 == "" ){
                writeinistr $Macro_Dir1, "MacroPath", str(#menu1), "";
    //T         goto pp_retry1;
                endmacro;
            }
            if( ! existfile($wk2+"\\.") ){  //  +"\\aruhazu1.mac" が硬い !!!
                message "おかしなフォルダです !\n\n" + $wk2;    endmacro;
            }
            $wk1 = $wk2;
            writeinistr $Macro_Dir1, "MacroPath", str(#menu1), $wk1;
    //R     writeinistr "hidemaru.ini", "Env", "MacroPath", $wk1;
    //R     envchanged;
    //T     goto pp_retry1;
        } else {
            if( $wk1 == "" ){   endmacro;   }
            if( ! existfile($wk1+"\\.") ){  //  +"\\aruhazu1.mac" が硬い !!!
                message "おかしなフォルダです !\n\n" + $wk1;    endmacro;
            }
            writeinistr "hidemaru.ini", "Env", "MacroPath", $wk1;
            envchanged;
        }
    } else {
    }
endmacro;

//  マクロフォルダを表示する - サンプル !
    $wk1 = getinistr("hidemaru.ini","Env","MacroPath");
    if( $wk1 == "" ){   $wk1 = hidemarudir; }
    message $wk1;
    endmacro;

//  マクロフォルダを変更する - サンプル !
    $wk1 = getinistr("hidemaru.ini","Env","MacroPath");
    if( $wk1 == "" ){   $wk1 = hidemarudir; }
    $wk2 = input("MacroPath !",$wk1);
    if( ! result ){ endmacro;   }
    if( ! existfile($wk2+"\\.") ){  //  +"\\aruhazu1.mac" が硬い !!!
        message "おかしなフォルダです !\n\n" + $wk2;    endmacro;
    }
    writeinistr "hidemaru.ini", "Env", "MacroPath", $wk2;
    envchanged;
    //  ENV;
    endmacro;

// end of macro.


[ ]
RE:00566 マクロフォルダの複数指定No.00596
Micky さん 99/05/25 20:14
 
コメントを書いていただいていたのに、見逃していました。
申し訳有りません。
それと、忙しくて、なかなかテストが出来ていませんでした。

>> スワップした場合って、登録して使用しているマクロは
>> 絶対パスを書けばよいのですかね?
>
>そうです。フルパスというか絶対パスです。
登録の所って、その手の事は(当然)考慮されていないので、
何も考えずに登録していたいままでのマクロがエラーになってしまいますね。
これは、いまいちでした。(勝手ばかり言って申し訳有りません。)

>> その手のマクロって有りましたっけ?
>
>昨日はあわただしく勘違いマクロを作って、(今日の昼に削除しました、)
>RES の意味を勘違いしていたみたいです。
>
>ひょっとして、あちきの大きな思い込み、勘違いかも知れません。
>「通常のマクロフォルダ (ディレクトリ) はサーバにあり、
>自分のローカルなマクロフォルダのマクロを実行するのが不便だ ... 」
>ということですか ???
どちらかというと、こちらの方です。
最初に書いたかもしれませんが、サーバにあるマクロは
みんなで共有してつかっています。
でも、時々自分専用(他の人は使う意味が無いと思われるもの)の
マクロを作って実行しているのですが、その時の指定が
ex. c:\HideMac\sample.mac
というのをフルタイプしないと動いてくれません。

マクロ登録フォルダにあるマクロは
s+↓キー
で"s"から始まるマクロの選択が簡単に出来ますよね。
用は、ローカルにあるマクロをこういう手段で起動したいわけです。
最初に説明不足で申し訳有りません。余計なお手数をおかけしてしまったようです。

>これで、用は足りませんか ???
>
>//*1    a3.mac
つかってみました。
残念ながら私の思惑が伝わっていなかった為、両手を挙げて喜べる状況ではありませ
ん。

>あちきはマクロを作成できるようになっても、
>[マクロ(M)] - [マクロ実行(M)] - xxx1.mac 指定では不便に思えました。
>宣伝ですが、ここのマクロライブラリに「マクロ機動隊」があります、
>作成したマクロを開いて、他の「秀丸」の窓を対象としてマクロを実行する、
>KZ_MEXec2.mac があります。試してみてください。
これを試してみる事にします。
早速ダウンロードしました。

>これが昨日の勘違いマクロです。
このマクロは後日参考になると思うのでとっておくことにします。
ありがとうございました。

[ ]