| |
はじめまして.
今日はじめて,マクロに挑戦しています.
さっそくですが,お知恵を拝借したく質問させていただきました.
よろしくお願いいたします.
秀丸メールにて,メールをファイルに書き出すマクロを考えています.
保存するファイル名は,「日時-件名」で自動的に設定されるようにしたく,
以下のようなマクロを作成しました.
---------------------------
$Subject=dllfuncstr("CurrentHeader", "Subject");
$Date=dllfuncstr("CurrentHeader", "Date");
$cmd = getenv("COMSPEC");
run $cmd + " /c timefmt" + " \"" + $Date + "\" | clip";
beginclipboardread;
$DateAndTime=getclipboard;
message $DateAndTime;
----------------------------
ここで,コマンドプロンプトに渡しているclipはVectorで紹介されて
いるものを使用させていただいております.
(http://www.vector.co.jp/soft/winnt/util/se328049.html)
また,timefmtは「Data:ヘッダ」の書式の文字列を与えると,
それを「YYYYMMDD-hhmmss」という文字列に置き換える自作プログラム
です.(Y:年,M:月,D:日,h:時,m:分,s:秒)
秀丸メールで適当なメールを選択して,このマクロを実行すると,
そのマクロが実行される前にクリップボードに入っていた文字列が
messegaにより出力されます.
具体例を挙げますと,以下のとおりです.
(1)秀丸上で適当な文字列,たとえば「AAA」をCtrl-Cによりコピー
(2)上記マクロを実行
(3)messageにより,「AAA」が出力
(4)秀丸上でCtlr-Vを入力すると,期待する文字列(YYYYMMDD-hhmmss)
が入っている.
ちなみに,マクロのmessageの行をコメントアウトしてもクリップボード
の内容はYYYYMMDD-hhmmssです.
クリップボードの使い方について何か根本的な勘違いをしているのでしょうか.
マニュアルを読んだのですが,この回答になる部分を見つけられません
でした.
環境は以下のとおりです.
・OS:WindowsXP SP2
・秀丸:v6.5b3
*「クリップボード履歴をとる」と「秀丸エディタの常駐」は無効
・秀丸メール:v4.69
|
|