マクロ初挑戦なんですがCurrentHeaderの使No.30503
hajimett さん 07/03/05 11:50
 
いつもお世話になっております
マクロの可能性に魅せられながらも手が出ませんでしたが初挑戦
初っ端から早速躓いています(^^;

    $s = dllfunc("CurrentHeader", "From");
と書いたらエラーがでます。
「文字列指定しないと駄目なのに他のが指定されている」という
警告がでますが理解できません。
多分すごく初歩的なミスなんだと思いますが、なんでしょう。

ちなみに、やりたいのは、
選択したメールの差出人をアドレス情報に基づいて変換したリストを
クリップボードに保存するというものです。

[ ]
RE:30503 マクロ初挑戦なんですがCurrentHNo.30504
h-tom さん 07/03/05 12:45
 

h-tom です。

>    $s = dllfunc("CurrentHeader", "From");
>と書いたらエラーがでます。
>「文字列指定しないと駄目なのに他のが指定されている」という
>警告がでますが理解できません。
>多分すごく初歩的なミスなんだと思いますが、なんでしょう。

マクロヘルプの"CurrentHeader"の所を見ると、
>返り値(文字列型) CurrentHeader, CurrentHeader2
となっています。

返り値(文字列型)なので、"dllfunc"ではなく"dllfuncstr"を使います。
最初は例からコピーして書き換えたほうが、間違いが少ないでしょう。

[ ]
RE:30504 マクロ初挑戦なんですがCurrentHNo.30508
hajimett さん 07/03/05 15:22
 
ありがとうございました、
"dllfunc"と"dllfuncstr"という区別のあることさえも今気付きました。
これからも宜しくお願いします。少しずつ勉強します。

>マクロヘルプの"CurrentHeader"の所を見ると、
>>返り値(文字列型) CurrentHeader, CurrentHeader2
>となっています。
>
>返り値(文字列型)なので、"dllfunc"ではなく"dllfuncstr"を使います。
>最初は例からコピーして書き換えたほうが、間違いが少ないでしょう。

[ ]
RE:30503 マクロ初挑戦なんですがCurrentHNo.30513
hajimett さん 07/03/06 00:42
 
>選択したメールの差出人をアドレス情報に基づいて変換したリストを
>クリップボードに保存するというものです。

以下のようなマクロを組んでみました(初挑戦の結果です)
とても単純で素人っぽいものですが
どなたかの参考になるかも知れないし、
また何かおかしな点があれば、ご指摘頂ければと思い
流します

loaddll "tkinfo.dll";
message "クリップボードに選択したメールの送信者情報リストを保存します";
#n = dllfunc("LockSelection");
if( #n == 0 ) {
    endmacro;
}
setclipboard "";
$str = "";
while(1) {
    #n = dllfunc("EnumSelection", 1);
    if( #n == 0 ) {
        break;
    }
    $s = dllfuncstr("CurrentHeader", "From");
    $s = dllfuncstr( "FindBook2", $s);
    $str = $str + $s + "\n";
}
addclipboard $str;
#n = dllfunc("UnlockSelection", 1);

[ ]