バージョンアップによって?マクロが動作No.32529
kuro0000 さん 07/10/27 10:44
 
以前、「メール用のフォルダを2つ使い分ける」為のマクロについて質問し、秀まる
お2 さんからアドバイスを頂きました。
(No.27760〜No.27769)
その時教えて頂いたマクロの構文

  loaddll "tkinfo.dll";
    openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
    $s = getregstr("HomeDir");
    if( $s == "c:\\maildata_work\\" ) {
        $s = "c:\\maildata_private\\";
    } else {
        $s = "c:\\maildata_work\\";
    }
    writeregstr "HomeDir", $s;
    closereg;
    #n = dllfunc("EnvChanged");

を改良し、現在は下記の形で使用しています。

    loaddll "tkinfo.dll";
    openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
    $s = getregstr("HomeDir");
    if( $s == "y:\\HidemaruMail\\maildata_work\\" ) {
        $s = "y:\\HidemaruMail\\maildata_private\\";
    } else {
        $s = "y:\\HidemaruMail\\maildata_work\\";
    }
    writeregstr "HomeDir", $s;
    closereg;
    #n = dllfunc("EnvChanged");

この中のy:は持ち出し用メモリスティックで、この持ち出し用メモリスティックに秀
丸メールのソフト及びデータを入れて自宅と職場の両方で使えるようにしています。
(ソフトはy:\HidemaruMailにデータはy:\HidemaruMail\maildata_work及びy:\Hidem
aruMail\maildata_privateに入っています。)

昨日、秀丸メールをV4.76からV4.81にしたところ、
maildata_private→maildata_workへの変換は出来るのですが、
maildata_work→maildata_privateの変換は出来なくなりました。
何故でしょう?

ちなみにレジストリエディタでHomeDirを開いたところ
y:\HidemaruMail\maildata_work\
となっていましたので、
y:\HidemaruMail\maildata_private\
に書き換えてやってみましたが、結果は同じでした。

[ ]
RE:32529 追記・バージョンアップによってNo.32531
kuro0000 さん 07/10/27 13:09
 
その後判った事を追記します。

(1)以前正常にマクロが動作していた時の状態
(2)現在のマクロが動作しない状態

バックアップをとっておりましたので、現在(1)、(2)どちらからでも秀丸メールを立
ち上げる事ができます。

(1)、(2)は共に外部メモリスティックに秀丸メール本体(ソフト)を置き、ホームデ
ィレクトリは同じ(y:\HidemaruMail\maildata_work\)で、指定しているマクロも同
じです。

(1)、(2)を比較する為に、(2)のメニューバー→マクロ→マクロ登録、でマクロのタ
イトル名を変えてみました。ファイル名(指定しているマクロの場所)は変更してい
ません。

結果、(1)と(2)ではマクロのタイトル名が違ったものになりました。
ということは(1)と(2)ではマクロを動作させるにともなうファイルかレジストリに違
いがあり(当然と言えば当然ですが)、そこをいじればマクロが正常に動作するので
はないかと思います。

[ ]
RE:32531 追追記バージョンアップによってNo.32532
kuro0000 さん 07/10/27 14:17
 
何故だか判りませんが、秀丸メール本体(ソフト)とメールデータ用のフォルダを別
にする事によって解決しました。

ちなみに秀丸メール本体は
Y:\HidemaruMail
メールデータ用のフォルダはそれぞれ
Y:\HidemaruMaildata\maildata_work
Y:\HidemaruMaildata\maildata_private
です。(yは外部メモリースティック)

maildata_work、maildata_privateをHidemaruMailの中においた状態ではマクロが動
作せず、上記のように別フォルダのHidemaruMaildataにおいた状態にしたら動作しま
した。
もちろん別フォルダにする際、マクロの構文中でmaildata_work、maildata_private
の指定場所をHidemaruMaildata内に変更しました。





[ ]
RE:32532 追追記バージョンアップによってNo.32536
秀まるお2 さん 07/10/27 22:07
 
 直ったってことなのでもういいのかもしれませんが、うまくいかない原因を調
べるには、マクロをいろいろ直して試行錯誤していただくしか無いかなぁと思い
ます。

    if( $s == "c:\\maildata_work\\" ) {
        $s = "c:\\maildata_private\\";
    } else {
        $s = "c:\\maildata_work\\";
    }

 この部分を、例えば

    if( $s == "c:\\maildata_work\\" ) {
        $s = "c:\\maildata_private\\";
    } else if( $s == "c:\\maildata_private\\" ) {
        $s = "c:\\maildata_work\\";
    } else {
        message "HomeDirが想定外です。HomeDir=" + $s;
        endmacro;
    }

 みたいにしてみるとか。

[ ]
RE:32536 追追記バージョンアップによってNo.32542
kuro0000 さん 07/10/29 08:54
 
参考になりました。
わざわざコメント下さりありがとうございました。

[ ]