|
2003/10/12(日) 17:39:21
こんにちは、おゆきさん
ダヴィンチ@ユーザーです。
既に山紫水明さんの素晴らしいマクロのご提案が
ありましたので私の出るマクロ(幕)はありませんが。
ご参考になれば幸いです。
ちょっと長いですが・・・
出力形式は、CSVファイル形式で新規メール画面に出力します。
アカウント名
From,Cc,To
重複行は秀まるおさんのマクロで削除しています。
/*
** タイトル:『hidesoft.8:14930| RE 14920 メールアドレスを抜き出すって出
来ますか?』
** 発信日:2003年10月12日(日)
** 発信者:おゆきさん
*/
>そうですよね。恐る恐る投稿したのでこんな基本的なことを
>忘れていました。私的にはアドレスと宛先名が対になって
>抜き出せれば100%の出来でした。ただアドレスだけでも
>OKです。
--マクロ
// 鶴亀メール用マクロモジュールのDLLをロード
loaddll "TKInfo.dll";
{
// 本体で起動されているか?
if( dllfunc( "IsTuruKameMain") != 1 ) {
message "本マクロは、鶴亀メール本体画面から起動して下さい。";
endmacro;
}
// メインウィンドハンドル
##main = dllfunc( "MainWnd" );
// 現在選択されているフォルダ直下の全メールを
// 選択状態にします。
#n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0);
#n = dllfunc("LockSelection");
// 出力メールをオープン
newfile;
disabledraw;
gofiletop;
beginsel;
gofileend;
delete;
#n = dllfunc("SwitchHeaderView", 0);
#orikaeshi = dllfunc( "IsOrikaeshi" );
if ( #orikaeshi == 1 ) {
#n = dllfunc( "SwitchOrikaeshi" );
}
// 該当メールのアドレス抽出→新規メールに出力
call GetHeader ##main;
// -------重複したメールアドレスを除去するマクロの例--------
gofiletop;
Loop:
#y = y;
$s = gettext( 0, y, 256, y );
if( $s != "" ) {
while(1) {
searchdown $s;
if( !result ) break;
if( gettext( 0, y, 256, y ) == $s ) {
deleteline;
up;
golineend;
}
}
}
moveto 0, #y;
down;
if( result ) goto Loop;
EXIT_MAIN:
endmacro;
freedll;
}
// カレントフォルダの全メールからFrom, Cc, Toの順で
// 新規メールに出力します。
// ##1 = 鶴亀本体ウインドハンドル
GetHeader:
{
##main = ##1;
$$header[0] = "From";
$$header[1] = "Cc";
$$header[2] = "To";
// 実行アカウント名とタイトル
insert dllfuncstr( "CurrentAccount" ) + "\n";
insert "送り主,同報,宛先\n";
while ( dllfunc("ExecAt", ##main, "EnumSelection", 1) > 0 ) {
##ii = 0;
while ( ##ii < 3 ) {
call GetHeaderString $$header[##ii], ##main;
$$s = $$return;
insert $$s;
if ( ##ii < 2 ) {
insert ",";
}
else {
insert "\n";
}
##ii = ##ii + 1;
}
}
##n = dllfunc( "ExecAt", ##main, "UnlockSelection", 0 );
return;
}
// $$1 = ヘッダー名
// ##2 = メインウィンドハンドル
GetHeaderString:
{
$$header = $$1;
##main = ##2;
$$headerString = "";
$$s = dllfuncstr("ExecAt", ##main, "CurrentHeader", $$header );
##jj = 0;
while ( 1 ) {
$$subs = dllfuncstr("GetEmailList", $$s, ##jj );
if ( $$subs == "" ) {
break;
}
$$subs = dllfuncstr("SetEmailOnly" , $$subs );
if ( ##jj > 0 ) {
$$headerString = $$headerString + "," + $$subs;
}
else {
$$headerString = $$subs;
}
##jj = ##jj + 1;
}
return "\"" + $$headerString + "\"";
}
--
--
メーラー: TuruKame 3.07beta6
OS: Windows98 SE
|
|