|
たびたびBarです。
メールを「引用付きコピー」しても、各行に引用符がつくだけで、
最初に「Subject」「From」などを反映してくれないのがちょっ
となぁ...などと思っています。
テンプレート展開付きコピー機能(裏技シリーズ) ver1.04
http://hide.maruo.co.jp/lib/tkmacro/tempextrefcopy104.html
という力作では、返信用テンプレートを参照してくれるのでヘッ
ダの反映も自由自在ですね。「これこれ。これが基本機能に欲
しかったなぁ」と思いました。
ただ、上のマクロだと自由度が高いかわりにメール返信用のウィ
ンドウなどがバックで立ち上がったりして、ちょっと初心者には
おすすめできない構造になってしまっていますね。そこで、もう
ちょっと手抜きしたマクロを作ってみました。どうでもいいよう
なものなのですが、下のほうにつけてあります。指定ヘッダを参
照するほか、アカウント名を引用符の前につけて「hoge>」とす
ることもできます。
できれば本体にこんな機能が欲しいんですけれど...まあ、マク
ロでできるようなことを要求するのもヘンかな。
--->8 --- CUT HERE --- filename: extqcopy.mac
// 拡張引用コピー(ヘッダ付き)
//v0.1.12003/01/17
//Written by SHIOBARA -Bar- Hiroaki
//[メール表示エディタで閲覧中のメールを引用コピー]
//・各行に引用符がつきます
//選択している場合は選択部分のみを、非選択時は
//本文すべてをコピーします
//・引用の前にそのメールのヘッダの一部をつけられます
//・各引用符の前にメール発信者のアカウント名を反映できます
loaddll "TKInfo.dll";
// ***** カスタマイズ可能な設定項目 *****
$headers = "From:Subject:Message-ID:";
//引用ヘッダを表示順にならべる
$quote = " >";
//引用記号
$prequote = "question";
//accounta@b.comからのメールを"a"+$prequotequoteで引用する
//""$quoteのみで引用する
//questionどちらにするか問い合わせる
$prequotequote = ">";
//prequote用引用記号
#accountmax = 8;
//"a"+$prequotequoteでの"a"部分の最大長。0だと制限なし
// ***** 以下本体 *****
if ( $prequote == "question" ) {
question "アカウント名(@の前)を附記して引用しますか?";
if ( result == yes ) {
$prequote = "account";
}
}
if ( $prequote == "account" ) {
$temp = dllfuncstr( "CurrentHeader", "From" );
$email = dllfuncstr( "SetEmailOnly", $temp );
$temp = leftstr( $email, strstr( $email, "@" ) );
if ( #accountmax > 0 ) {
$temp = leftstr( $temp, #accountmax );
}
$quote = $temp + $prequotequote;
}
if ( selecting ) {
copy2;
} else {
disabledraw;
#xcurrent = x;
#ycurrent = y;
#headermode = dllfunc( "HeaderView" );
#n = dllfunc( "SwitchHeaderView", 0 );
gofiletop;
beginsel;
gofileend;
copy;
#n = dllfunc( "SwitchHeaderView", #headermode );
moveto #xcurrent, #ycurrent;
enabledraw;
}
beginclipboardread;
$a = "";
$b = getclipboard;
while ( $b != "" ) {
$a = $a + $quote + $b;
$b = getclipboard;
}
#i = 0;
while ( $headers != "" ) {
#c = strstr( $headers, ":" );
if ( #c == -1 ) {
break;
}
$s = leftstr( $headers, #c );
#l = strlen( $headers ) - #c - 1;
$tmp = $headers;
$headers = rightstr( $tmp, #l );
if ( length( $s ) < 1 ) {
continue;
}
$a[ #i ] = $s;
#i = #i + 1;
}
setclipboard "";
#i = 0;
while( $a[ #i ] != "" ) {
addclipboard $a[ #i ] + ": ";// "From: "
addclipboard dllfuncstr( "CurrentHeader", $a[ #i ] );// "a@b.com"
addclipboard "\x0D\x0A";// "\r\n"
#i = #i + 1;
}
addclipboard $a;
|
|