|
秀丸メールのVersion 7.10β2をアップロードしました。これでいろいろ今回の件
の対応をしています。
重複メールのチェックで、送受信日時の新しい方を残す用のオプション追加と、あ
と、インポート時に、インポートしたメールの送受信日時をファイルの更新日時と同
じにするオプション追加をしています。マクロからも使えるようにしました。
これを使って、ご要望の件のマクロも作られるようになりまして、以下のようにな
りました。マクロの先頭にある一時ファイル用のフォルダ、対象アカウント、対象フ
ォルダの所だけ書き換えればおおよそそのまま使えると思います。
-----------------------------------------------------------------------------
//特定フォルダの最近7日間に更新された情報アイテムをエクスポートするマク
ロ。
//
$exportDestFolder = "e:\\temp\\InfoItemFolder"; //ここを書き換える。
$infoItemAccount = "斉藤秀夫メイン"; //インポート先アカウ
ント名
$infoItemFolder = "User\\Report"; //インポート先フォル
ダ名
if( ! existfile( $exportDestFolder ) ) {
message $exportDestFolder + " が存在しません。フォルダを作ってからマ
クロ実行してください。";
endmacro;
}
if( existfile( $exportDestFolder + "\\*.txt" ) ) {
message $exportDestFolder + " に既にテキストファイルが存在しています。
空にしてからマクロを実行してください。";
endmacro;
}
loaddll "tkinfo.dll";
#n = dllfunc("SetJapaneseCodePageMode", 1);
#n = dllfunc("SelectFolder",$infoItemAccount, $infoItemFolder);
#n = dllfunc("SetThreadView", 0); //一覧表示(スレッド表示じゃない)
#n = dllfunc("SetSortMethod", 4); //並び順 = 送受信日時 = 情報アイ
テムの更新日時
#n = dllfunc("SetViewArea", 0); //範囲 = 全体
#n = dllfunc("SelectPane", 1);
#mailcount = dllfunc("MailCount");
if( #mailcount == 0 ) {
message "このフォルダにメールがありません。";
endmacro;
}
$findpackPrev = dllfuncstr("GetFindPack");
#n = dllfunc("SetMailIndex", 0);
#n = dllfunc("SetFindPack", "(\"@.item\", target=to), flag=transmit=7日
前-指定なし, hilight=0");
#top = dllfunc("FindDownInclude");
if( #top == 0 ) {
//見つからない場合は何もしない
message "エクスポートする対象メール(最近7日間に更新された情報アイ
テム)はありません。";
} else {
#exportcount = 0;
while(1) {
#n = dllfunc("Export", $exportDestFolder, "emltxt-date", "encode
-attach", "", "", "transmittimestamp");
if( #n == 0 ) {
message "エクスポートでエラーが発生しました。マクロを中断し
ます。";
break;
}
#exportcount = #exportcount + 1;
#n = dllfunc("FindDown");
if( #n == 0 ) {
break;
}
}
message str(#exportcount) + "通のメールをエクスポートしました。";
}
#n = dllfunc("SetFindPack", $findpackPrev);
endmacro;
-----------------------------------------------------------------------------
//エクスポートされた情報アイテムをインポートして重複した古い情報アイテム
を削除するマクロ。
//
$importSourceFolder = "e:\\temp\\InfoItemFolder"; //インポート元のフォ
ルダのパス名
$infoItemAccount = "斉藤秀夫メイン"; //インポート先アカウ
ント名
$infoItemFolder = "User\\Report"; //インポート先フォル
ダ名
#ver = dllfunc("HidemaruMailVersion");
if( #ver < 710 ) {
message "秀丸メールのバージョンが古いです。Version 7.10以上が必要で
す。";
endmacro;
}
if( ! existfile( $importSourceFolder ) ) {
message $importSourceFolder + " が存在しません。マクロを中断します。";
endmacro;
}
if( ! existfile( $importSourceFolder + "\\*.txt" ) ) {
message $importSourceFolder + " にインポート用のテキストファイルが存
在ません。マクロを中断します。";
endmacro;
}
loaddll "tkinfo.dll";
#n = dllfunc("SetJapaneseCodePageMode", 1);
#n = dllfunc("SelectFolder",$infoItemAccount, $infoItemFolder);
if( #n == 0 ) {
message "インポート先のフォルダがありません。";
endmacro;
}
#n = dllfunc("Import", $importSourceFolder + "\\*.txt", "eml", "", "", "
tfiletimestamp", "", "nospamfilter");
if( #n == 0 ) {
message "インポートされたメールがありませんでした。";
endmacro;
}
#n = dllfunc("SetDuplicationCheckOption", "checkdate+prioritynew");
#prevCount = dllfunc("MailCountAll");
#n = dllfunc("CheckDuplication", "batch", "", "", "", "");
#deletedCount = #prevCount - dllfunc("MailCountAll");
if( #deletedCount != 0 ) {
message str(#deletedCount) + "通のメールが「重複メールのチェック」に
てゴミ箱に移動しました。移動したメールはゴミ箱フォルダを選択してメールの並び
順を「このフォルダ上でのメール発生順」にして一番最新の" + str(#deletedCount)
+ "通となります。";
//削除されたメールを確認できるようにする処理。
//question str(#deletedCount) + "通のメールが「重複メールのチェッ
ク」にてゴミ箱に移動しました。移動したメールを今確認しますか?";
//if( result == yes ) {
// #n = dllfunc("SelectFolder", "", "ゴミ箱");
// #n = dllfunc("SetThreadView", 0); //一覧表示(スレッド表示
じゃない)
// #n = dllfunc("SetSortMethod", 140); //並び順 = このフォルダ
でのメール発生順
// #n = dllfunc("SetViewArea", 0); //範囲 = 全体
// #n = dllfunc("SelectPane", 1);
// #n = dllfunc("SimulateKeyStroke", 0x23, 0, 0, 0 ); //End
キー、VK_END
// #i = 1; //1から始める
// while( #i < #deletedCount ) {
// #n = dllfunc("SimulateKeyStroke", 0x26, 1, 0, 0 ); //Sh
ift+上矢印キー、VK_UP
// #i = #i + 1;
// }
//}
}
|
|