|
#funayuki1です。
試してみた結果の報告です。
マクロ実行時のカレントディレクトリと同じ階層のディレクトリが
最後まで検出されないと無限ループに入ってしまう様でした。
(マクロが終了しませんでした。)
また、マクロ終了後、各フォルダのメールが全選択のままになって
いました。
そこで、いただいたマクロ例を以下の様に手直ししてみました。
loaddll "tkinfo.dll";
$account = dllfuncstr("CurrentAccount");
$folder = dllfuncstr("CurrentFolder");
if( $folder != "" ) {
$folder = $folder + "\\";
}
#len = strlen($folder);
while(1) {
if( $folder2 != "受信ログ" && $folder2 != "送信ログ" ) {
#n = dllfunc("SelectAllMail");
if( dllfunc("SelectedMailCount") != 0 ) {
#n = dllfunc("DoFilter", 0, 0, 0 );
}
}
#n = dllfunc("SetMailIndex", 0); //<--追加@
#n = dllfunc("ExpandFolder", 1);
#n = dllfunc("NextFolder");
if( dllfuncstr("CurrentAccount") != $account ) {
break;
}
$folder2 = dllfuncstr("CurrentFolder");
if( strlen($folder2) <= #len ) {
break;
}
if( leftstr($folder2, #len) != $folder ) {
break;
}
if(dllfuncstr("GetNextFolder",$account, $folder2) == "") break;
//<--追加A
}
追加@
振り分け後、全選択を解除し、フォルダの先頭メールに位置づける
追加A
次のフォルダが無い場合はループを終了
問題が有る場合ご指摘いただけると助かります。
以上。
>#funayuki1です。
>
>秀まるお2殿、情報のご提供ありがとうございます。
>試してみます。
>
>> サブフォルダも含めて振り分けたりアカウント全体を振り分けるって機能はす
>>みませんが存在しないです。
>>
>> マクロでやろうと思えば出来るので、マクロでやって欲しいです。
>>
>> 選択したフォルダ配下のメールを全部振り分け直す例:
>>
>> loaddll "tkinfo.dll";
>> $account = dllfuncstr("CurrentAccount");
>> $folder = dllfuncstr("CurrentFolder");
>> if( $folder != "" ) {
>> $folder = $folder + "\\";
>> }
>> #len = strlen($folder);
>> while(1) {
>> if( $folder2 != "受信ログ" && $folder2 != "送信ログ" ) {
>> #n = dllfunc("SelectAllMail");
>> if( dllfunc("SelectedMailCount") != 0 ) {
>> #n = dllfunc("DoFilter", 0, 0, 0 );
>> }
>> }
>> #n = dllfunc("ExpandFolder", 1);
>> #n = dllfunc("NextFolder");
>> if( dllfuncstr("CurrentAccount") != $account ) {
>> break;
>> }
>> $folder2 = dllfuncstr("CurrentFolder");
>> if( strlen($folder2) <= #len ) {
>> break;
>> }
>> if( leftstr($folder2, #len) != $folder ) {
>> break;
>> }
>> }
|
|