|
こんにちは。MAKOPIです。
>例えば、アドレス帳の入力を下記のようにしておいて、、、
> ・「名前」欄には「たくたく」
> ・「備考」欄には「Takutaku」
>テンプレートの切替によって、
> ・日本語用テンプレートでは「たくたく <xxxxxxxx@hogehoge.com>」
> ・英語用テンプレートでは「Takutaku <xxxxxxxx@hogehoge.com>」
>などのように切り替えられると非常にありがたいのですが…
マクロだと可能です。
1.
一番下に載せた、名前変更.macから、2つのマクロファイルを作成します。
2.
名前変更.macの5行目を
#USE_FORMAT=#NOMAL_NAME;
としたものを名前アドレス帳.macとして保存
名前変更.macの5行目を
#USE_FORMAT=#NOTE_NAME;
としたものを名前備考.macとして保存
3.
日本語メール用のテンプレートの最後に
$(ExecMacro,"名前アドレス帳.mac")$-
英語メール用のテンプレートの最後に
$(ExecMacro,"名前備考.mac")$-
を付け加えると、希望の動作になります。
//-------- 名前変更.mac ---------------------------------
#DELETE_NAME = 0; // 削除
#NOMAL_NAME = 1; // 自分のアドレス帳から
#NOTE_NAME = 2; // 自分のアドレス帳の備考から
#USE_FORMAT = #NOMAL_NAME; // ←ここで上から選ぶ
if( readonly ) //上書き禁止か?
{
message "上書き禁止です。";
endmacro;
}
loaddll "TKInfo.dll";
if( !result )
endmacro;
disabledraw; // 描画禁止
call ModifyNameSpace "To", #USE_FORMAT;
call ModifyNameSpace "Cc", #USE_FORMAT;
call ModifyNameSpace "Bcc",#USE_FORMAT;
endmacro;
ModifyNameSpace:
##HeaderMax = dllfunc("CountCurrentHeader",$$1); // Toヘッダ数
##HeaderCount = 0;
while(##HeaderCount < ##HeaderMax)
{
//// ヘッダ分繰り返し
$$AddrssList = dllfuncstr("CurrentHeader2",$$1,##HeaderCount);
##ListMax = dllfunc("CountEmailList", $$AddrssList);
##ListCount = 0;
$$AllEmailAdd = ""; // ヘッダにセットする文字列
$$Delimiter = ""; // アドレス区切り文字
while(##ListCount < ##ListMax)
{
//// アドレス数分繰り返し
$$Address = dllfuncstr("GetEmailList", $$AddrssList, ##ListCount);
if (##2 == #NOMAL_NAME)
$$EmailAdd = dllfuncstr("FindBook3",$$Address); // アドレス
から取得
else if (##2 == #NOTE_NAME)
{
$$EmailAdd = dllfuncstr("FindBookNote",$$Address); // 備考欄取得
if($$EmailAdd != "")
$$EmailAdd = $$EmailAdd + " <" + dllfuncstr("SetEmailOnly",$
$Address) + ">";
else
$$EmailAdd = dllfuncstr("SetEmailOnly",$$Address);
}
else
$$EmailAdd = dllfuncstr("SetEmailOnly",$$Address); // アド
レスのみ取得
$$AllEmailAdd = $$AllEmailAdd + $$Delimiter + $$EmailAdd;
$$Delimiter = ", ";
##ListCount = ##ListCount + 1; // 次のアドレス
}
if($$AllEmailAdd != "")
{
$$s = dllfuncstr("SetHeader2",$$1,$$AllEmailAdd,##HeaderCount);
}
##HeaderCount = ##HeaderCount + 1; // 次のTo
}
return;
//-------- ここまで ---------------------------------
|
|