メール保存時のフォルダの指定(他2点)No.03524
haru さん 01/10/22 10:34
 
 草稿フォルダの下に更にフォルダが作成できるようになり、宛先
によって保存場所を変えられる様になり、重宝しています。
 ところで、そうなったことでメール保存時、いきなり草稿のサブ
フォルダに保存するということはできないでしょうか?現状では、
「草稿に保存」ですと、草稿の親フォルダに保存されてしまいます。

 またはそういうことはマクロで可能ですか?
 
 ※残りは別スレッドにさせていただきます。(話題が異なりますので)

[ ]
RE:03524 メール保存時のフォルダの指定(他2点)No.03538
秀まるお2 さん 01/10/22 13:53
 
> ところで、そうなったことでメール保存時、いきなり草稿のサブ
>フォルダに保存するということはできないでしょうか?

 出来ません。Outlook Expressでも出来なかったので、そういう物だと思っ
て草稿フォルダ中のサブフォルダ作成をサポートしました。

> またはそういうことはマクロで可能ですか?

 tkinfo.dllのMove関数を使ってメールを移動する形でなら出来ると思います。
ただし、Move関数は鶴亀メール本体ウィンドウ上でしか使えないので、Sync関
数と組み合わせるなどしないといけないです。

[ ]
RE:03538 メール保存時のフォルダの指定(他2点)No.03542
haru さん 01/10/22 14:26
 
> 出来ません。Outlook Expressでも出来なかったので、そういう物だと思っ
>て草稿フォルダ中のサブフォルダ作成をサポートしました。
> tkinfo.dllのMove関数を使ってメールを移動する形でなら出来ると思います。
>ただし、Move関数は鶴亀メール本体ウィンドウ上でしか使えないので、Sync関
>数と組み合わせるなどしないといけないです。

すみませんでした。手動で移動することにします。

[ ]
RE:03542 メール保存時のフォルダの指定(他2点)No.03560
たるっぱ さん 01/10/22 21:58
 
たるっぱです。

>> tkinfo.dllのMove関数を使ってメールを移動する形でなら出来ると思います。
>>ただし、Move関数は鶴亀メール本体ウィンドウ上でしか使えないので、Sync関
>>数と組み合わせるなどしないといけないです。
>
>すみませんでした。手動で移動することにします。

手動で移動すると仰っているのにお節介な気もしますが、マクロを作ってみま
した。
保存先はメニューにより選択できます。フォルダを新規作成したり、名前を
変えたりしても、マクロを修正する必要はありません。
ソース内のコメントにあるとおり、受信メールと送信済みメールでは動きま
せん。本体ウィンドウでの動作も対象外としました。

以下、マクロの中身です
----------------------------------------------------------------------
// 編集中のメールを草稿配下のフォルダに移動して閉じるマクロ

loaddll "tkinfo.dll";
if( !result ) {
message "tkinfo.dllが使えません";
endmacro;
}
if( !dllfunc("IsTuruKame") ) {
endmacro;
}

// 未送信メール以外では実行しない
#mtype = dllfunc( "MailType" );
if( #mtype  == -1 || #mtype  == 3  || #mtype  == 4) {
endmacro;
}


// 本体ウィンドウでは実行しない
if( dllfunc( "IsTuruKameMain") ) {
    endmacro;
}

// エディタウィンドウの情報退避
#handle = hidemaruhandle(0);
$acc = dllfuncstr( "CurrentAccount" );

// ターゲットフォルダ情報取得
if (!dllfunc( "SetMainWndTop" )) {
  message "本体ウィンドウが表示できません";
  endmacro;
}
$folder[0] = "草稿";
if(!dllfunc( "SelectFolder", $acc, $folder[0] )) {
  message "草稿フォルダが選択できません";
  endmacro;
}
#dmy = dllfunc( "ExpandFolder", 1 );
#i = 1;
while(dllfunc("NextFolder")) {
    $folder[#i] = dllfuncstr( "CurrentFolder" );
    if (leftstr($folder[#i],5) != "草稿\\") break;
    #i = #i + 1;
}

// エディタウィンドウを選び直す
setactivehidemaru #handle;

// ターゲットフォルダ選択
mousemenuarray $folder, #i;
if (!result) {
    endmacro;
} else {
    #flseq = result - 1;
}

// 一旦、"草稿"フォルダに保存する
if (!dllfunc("SaveDraft")){
    message "メールの保存に失敗しました";
    endmacro;
}

// 編集中メールを本体ウィンドウで選択する
if (!dllfunc( "Sync" )){
    endmacro;
}

// 本体ウィンドウをactiveに
if (!dllfunc( "SetMainWndTop" )) {
    message "本体ウィンドウが表示できません";
    endmacro;
}

// エディタウィンドウを閉じる
closehidemaru #handle;

// ターゲットフォルダが"草稿"以外ならメールを移動
if (#flseq > 0) {
    if (!dllfunc( "Move", $acc, $folder[#flseq] )) {
        message "メールの移動に失敗しました";
        endmacro;
    }
}

[ ]
RE:03560 メール保存時のフォルダの指定(他2点)No.03576
haru さん 01/10/23 11:35
 
たるっぱさん、こんにちは。。

>手動で移動すると仰っているのにお節介な気もしますが、マクロを作ってみま
>した。

ありがとうございます。非常に便利です。今後ともよろしくお願いします。

[ ]
RE:03560 メール保存時のフォルダの指定(他2点)No.03597
haru さん 01/10/23 22:45
 
たるっぱさん、こんばんは。

マクロ使用させていただいています。ありがとうございます。
 ところで、草稿のサブフォルダ(sf)にあるメールを編集してこの
マクロを実行しますと、"メールの移動に失敗しました"と、表示さ
れます。移動先は元のsfです。
 メニューから「草稿」フォルダに移動を、選択すれば、なにもメ
ッセージは表示されません。実際の移動先はやはり元のsfです。

よろしくお願いします。

[ ]
RE:03597 メール保存時のフォルダの指定(他2点)No.03599
たるっぱ さん 01/10/23 23:39
 
たるっぱです。
haruさん、拙作をお使いいただきありがとうございます。

> ところで、草稿のサブフォルダ(sf)にあるメールを編集してこの
>マクロを実行しますと、"メールの移動に失敗しました"と、表示さ
>れます。移動先は元のsfです。
> メニューから「草稿」フォルダに移動を、選択すれば、なにもメ
>ッセージは表示されません。実際の移動先はやはり元のsfです。

うむ、マクロのバグですね、すみません。
SaveDraft関数の動作を誤解していたようで(必ず「草稿」フォルダに保存さ
れるものだと思ってましたが、違いました)
一旦保存したメールに対して実行した場合、エラーメッセージが出たり、
移動できなかったりすることがありました。移動処理のエラートラップを鶴亀
に委ねることにして、最後の部分を、

----------------------------------------------------------------------
// メールを移動する
#dmy = dllfunc( "Move", $acc, $folder[#flseq] );

// 終了
endmacro;
----------------------------------------------------------------------

こうして下さい。

[ ]
RE:03599 メール保存時のフォルダの指定(他2点)No.03601
haru さん 01/10/24 08:37
 
たるっぱさん、こんにちは。。

早速のお返事・対応ありがとうございます。

>----------------------------------------------------------------------
>// メールを移動する
>#dmy = dllfunc( "Move", $acc, $folder[#flseq] );
>// 終了
>endmacro;
>----------------------------------------------------------------------
>こうして下さい。

これを

 ターゲットフォルダが"草稿"以外ならメールを移動
if (#flseq > 0) {
    if (!dllfunc( "Move", $acc, $folder[#flseq] )) {
        message "メールの移動に失敗しました";
        endmacro;
    }

}

これに置き換えたら、うまくいきました。
で、良いですよね。

[ ]
RE:03599 フォーカスの位置No.03620
haru さん 01/10/26 10:28
 
たるっぱさん、こんにちは。

新規のメールをsfに保存後(移動後)鶴亀本体の草稿親フォルダに
フォーカスが移りますが、移動先のsfに持っていくことは可能でし
ょうか?

よろしくお願いします。

[ ]
RE:03620 フォーカスの位置No.03665
haru さん 01/10/29 16:41
 
たるっぱさん、こんにちは。

すみません。いろいろやっているうちにできました。お手数かけました。

[ ]