[ 新規に投稿する ]

メール移動(フォルダにドロップ)後のフォルダの動作No.13945
やなやな さん 25/12/01 22:31 [ コメントを投稿する ]
   秀丸メール Ver. 7.40 を Windows 11 Enterprise で使用しております。
 メールをドラッグ & ドロップ操作で移動(またはコピー)する際のフォルダの動作についてご教示ください。
 受信フォルダからメールを他のフォルダに移動する際に移動先フォルダが折りたたまれている場合にはフォルダは自動的に展開します。一方、展開されているフォルダの上にマウスを置いてしばらく待つとフォルダは折りたたまれます。非常に便利な機能です。
 メールを移動(またはコピー)する際のフォルダの動作として移動完了後にフォルダを折りたたむ機能はありますか。うまく説明できていない可能性もありますが、以下のような流れです。他のメーラを例えにして申し訳ありませんが、Becky でメールをフォルダ間でドロップ & ドラッグする様なイメージです。

 展開されていないフォルダへメールを移動
  ↓
 フォルダが展開
  ↓
 メールを移動(またはコピー)完了
  ↓
 フォルダが折りたたまれる(元の状態に戻る)

機能として無ければマクロ等で対応できますか。ご教示を頂戴できれば幸いです。よろしくお願いします。
[ ]
RE:13945 メール移動(フォルダにドロップ)後のフォルダの動作No.13949
秀まるお2 さん 25/12/02 10:55 [ コメントを投稿する ]
  ドラッグドロップ操作の最中にフォルダを展開した場合に、それを自動で折りたたむような機能は秀丸メールには無いです。しいてなんとかするとしたら、フォルダの展開/折りたたみ状態を自分好みにするマクロを作ってそれを手動で実行する方法はあるかと思います。

マクロでやるとしたら、ExpandFolderって関数があるにはありますが、フォルダを選択して実行しないといけないので、マクロとしてはちょっとややこしくて、例えばアカウント直下に「テスト」フォルダがあって、それを折りたたむとしたら、以下のような面倒なマクロになります。

    loaddll "tkinfo.dll";
    $account = dllfuncstr("CurrentAccount");
    $folder = dllfuncstr("CurrentFolder");
    #expand = dllfunc("GetFolderExpandState", "斉藤秀夫アカウント", "User\\テスト");
    if( #expand == 1 ) {
        #n = dllfunc("SelectFolder", "斉藤秀夫アカウント", "User\\テスト");
        #n = dllfunc("ExpandFolder", 0 );
    }
    #n = dllfunc("SelectFolder", $account, $folder);


ExpandFolder関数のパラメータでアカウント/フォルダ指定できるようにしたらもっと簡単になるので、それはそれで一回トライしてみようと思います。

何か他にいい作戦があったら対応してもいいですけども。例えば他のファイラー系アプリに自動折りたたみ機能があるとかなら、その辺参考にして同様の機能追加をする作戦とかは考えられます。
[ ]
RE:13949 メール移動(フォルダにドロップ)後のフォルダの動作No.13952
やなやな さん 25/12/02 12:46 [ コメントを投稿する ]
  ご教示ありがとうございます。

自動展開折りたたみはないとのことで承知しました。
マクロについてもご教示ありがとうございます。マクロ中にフォルダを明示しなければならず、フォルダ数分を作成する必要があり、数が多いと大変なことになりそうです。しかしながら,マクロの提示ありがとうございます。大変参考になります。


>ExpandFolder関数のパラメータでアカウント/フォルダ指定できるようにしたらもっと簡単になるので、それはそれで一回トライしてみようと思います。
●お手数ですが、よろしくお願いします。

>何か他にいい作戦があったら対応してもいいですけども。例えば他のファイラー系アプリに自動折りたたみ機能があるとかなら、その辺参考にして同様の機能追加をする作戦とかは考えられます。
●今すぐに思いつかず、参考になりそうなアプリを探してみます。
[ ]
RE:13952 メール移動(フォルダにドロップ)後のフォルダの動作No.13959
秀まるお2 さん 25/12/03 12:00 [ コメントを投稿する ]
  とりあえず自動折りたたみマクロを簡単に実現する用に、ExpandFolder関数の修正は出来ました。

    loaddll "tkinfo.dll";
    #n = dllfunc("ExpandFolder", 0, "アカウント名", "フォルダ名1");
    #n = dllfunc("ExpandFolder", 0, "アカウント名", "フォルダ名2");
    #n = dllfunc("ExpandFolder", 0, "アカウント名", "フォルダ名3");
    #n = dllfunc("ExpandFolder", 0, "アカウント名", "フォルダ名4");

みたいに折りたたみたいフォルダを羅列して簡単に折りたたみは可能になりました。

秀丸メール起動時や終了時に自動実行する手もあります。

次のβ版で一応対応させていただきます。

----------------------------------------------------------------
自動展開されたフォルダを自動で折りたたむとしたら、例えばメールをドラッグドロップで移動/コピーした後にもしも自動展開したフォルダがあれば、例えばフォルダ枠の右下あたりに「自動展開したフォルダの折りたたみ」みたいなボタンが一定時間表示されて、それを押せば簡単に折りたたむ、みたいな機能があったらいいかもしれません。

[ ]
RE:13959 メール移動(フォルダにドロップ)後のフォルダの動作No.13960
やなやな さん 25/12/03 13:15 [ コメントを投稿する ]
  関数の修正ありがとうございます。次のβ版で対応いただけるとのことで,試してみたいと思います。
対象とするフォルダの分だけ記載する必要があり,記述が長くなりますが,フォルダ数のマクロを作成するよりはスマートになると思います。

自動折りたたみに関するご提案は非常に興味があります。自動展開フォルダに対して「折りたたみボタン」が表示されれば,使い勝手が良くなると思います。マウスの右クリックメニュー(項目が多くなると埋もれる可能性もありますが)に表示する方法も良いかなと思います。

無理なお願いに対して,対応いただきありがとうございます。
[ ]
RE:13960 メール移動(フォルダにドロップ)後のフォルダの動作No.13962
秀まるお2 さん 25/12/03 18:42 [ コメントを投稿する ]
  ドラッグドロップの最中のマウスホバーでフォルダが自動展開した後に、フォルダ枠の一番下に

     自動展開したフォルダの折りたたみ

ってボタン(というか、バー)が出てきて、ドラッグアンドドロップした後にそこをクリックすれば一発で前の折りたたみ状態に戻すように出来るようにしてみました。次のβ版でそういう風になる予定です。良かったらお試しください。(まだアップロードしてないし、まだ完成してないけど)
[ ]
RE:13962 メール移動(フォルダにドロップ)後のフォルダの動作No.13963
やなやな さん 25/12/03 23:30 [ コメントを投稿する ]
  スピーディーな開発と修正、そしてご対応ありがとうございます。
是非試してみます。

イメージだけが先行して実際にどのような動きなのか、どんな風に操作するのか等々、推測の域を出ませんが、楽しみにしております。

ありがとうございます。引き続きよろしくお願い申し上げます。
[ ]

[ 新規に投稿する ]