【質問】テンプレートで題名に日付等を入No.02614
hum2 さん 10/04/30 10:01
 
 お世話になります。humです。
【質問】テンプレートで題名に日付等を入れる様にしていて
作成後に一度保存したり、過去の同じ内容を使い回す場合に
年月日 曜日 時間の部分を現在日付/時刻で書換をしたいのですが
マクロが分からず、うまくいきません。

2010/04/30 金 10:01:20

↑形式は過去の投稿を参考に

    $date = dllfuncstr("CurrentDate", "YYYY/MM/DD W hh:mm:ss");

と指定して書き換えられたので

2010年04月30日(金) 09:13:22

subject:  【質問】テンプレートで題名に日付等を入れる2010年04月30日(金) 09:13:22

の現在日付/時刻の部分はどうか?と思ってトライしているのですが、うまくいきま
せん。
以下、トライしたマクロです。
//実行時間書換
//書換を実行した瞬間の時間を入れる
//----------------------------------------------------------------------
    loaddll "tkinfo.dll";
    $date = dllfuncstr("CurrentDate", "YYYY/MM/DD W hh:mm:ss");
    $dateFind = leftstr($date, 14) + "[0-9]{2}:[0-9]{2}:[0-9]{2}";
    #x = x; #y = y;
    gofileend;
    replaceall $dateFind, $date, regular, casesense;
    if( !result ) {
        question "文中の現在日付/時刻の書換に失敗しました。" +
                 "編集を中断しますか?";
        if( result == yes ) {
            #n = dllfunc("SetCancel", 1);
        }
    }
    moveto #x, #y;
//----------------------------------------------------------------------
//
//

年月日(曜日)時間を含むマクロ文を書くことはできないのでしょうか。
できれば文中の現在日付/時刻とsubject:中の現在日付/時刻を変更する
方法をおわかりの方、ぜひ教えていただけませんか。
--
2010/04/30 金 10:01:20
2010年04月30日(金) 09:13:22
Windows XP Pro SP3
秀丸メール   Ver.5.39β1
秀丸エディタ Ver.8.01β4

[ ]
RE:02614 【質問】テンプレートで題名に日No.02615
秀まるお さん 10/04/30 10:41
 
 とりあえず、

    $dateFind = "[0-9]{4}/[0-9]{2}/[0-9]{2} [月火水木金土日] [0-9]{2}:[0-9]
{2}:[0-9]{2}";

 のようにしたらうまく置換しました。

> 2010/04/30 金 10:01:20

 この形式なら上記正規表現で置換出来ると思います。

[ ]
RE:02615 【質問】テンプレートで題名に日No.02616
hum2 さん 10/04/30 12:43
 
 秀まるお様
 お世話になります。hum です。
質問の仕方がヘタですみません。
$("CurrentDate","YYYY/MM/DD W hh:mm:ss")
2010/04/30 金 12:32:57 の形式は
以前も指定できていたので
2010/04/30 金 12:32:57 のように置換出来るのは
理解できました。

$("CurrentDate","YYYY年MM月DD日 W hh:mm:ss")
2010年04月30日 金 12:36:46 の形式も似ているのでOKでした。


テンプレートで指定した場合の下二つの"YYYY年MM月DD日(W) hh:mm:ss"
()部分の記述が文中にあっても置換したい
と思ってトライしているのですが、うまくいきません。

$("CurrentDate","YYYY年MM月DD日(W) hh:mm:ss")
2010年04月30日(金) 12:05:52

$(SetHeader,"Subject","【連絡】" + $(CurrentDate,"YYYY年MM月DD日(W) hh:mm:ss
"))$-
Subject:  【連絡】2010年04月30日(金) 12:05:52

[ ]
RE:02616 【質問】テンプレートで題名に日No.02617
秀まるお さん 10/04/30 13:07
 
    $dateFind = "[0-9]{4}年[0-9]{2}月[0-9]{2}日\\([月火水木金土日]\\) [0-9]
{2}:[0-9]{2}:[0-9]{2}";

 でヒットすると思います。

[ ]
RE:02617 【質問】テンプレートで題名に日No.02620
hum2 さん 10/04/30 15:47
 
 秀まるお様
 お世話になります。hum です。

無事、置換実行日付/時刻を更新できました。
大変有意義で貴重なアドバイス、ありがとうございました。

>    $dateFind = "[0-9]{4}年[0-9]{2}月[0-9]{2}日\\([月火水木金土日]\\) [0-9]
>{2}:[0-9]{2}:[0-9]{2}";

ありがたく使わせて頂きます。
\\(...\\)   ←これに気づかず  +\(...\) や + "\("  でハマリました。

Subject:  は
    $date = dllfuncstr("CurrentDate","YYYY年MM月DD日(W) hh:mm:ss");
    #n = dllfunc("SetHeader","Subject","【連絡】" + $date);
で置換できました。
## 難点は元の題名が置換されると、後で?にならないのか?...な点とか
## まあ、しばらく使ってみて考えます。送受信日付を置換日に更新しておけば
## 「メールを送受信した日付/時刻」と「Dateヘッダ(メールの作成日付/時刻)」
## とは別々に管理できるかな?...と思ったりしています。

loaddll "TKInfo.dll";
$s = dllfuncstr("CurrentDate", "YYYY/MM/DD hh:mm:ss");
#n = dllfunc("SetMailTransmitDate", $s);
#n = dllfunc("AlterSave");
endmacro;

[ ]