検索結果一覧画面に再検索ボタンを付けたNo.11526
mwave さん 23/07/21 14:26
 
いつもお世話になっております。
表題の件に付きまして、
#n = dllfunc("SetFindPack", "flag=!send&unread, subfolder=1");
を使って全アカウントの未読メールを検索結果の一覧画面に表示し、迷惑メールの削
除やメール内容の確認をしています。

ある程度のところで再検索をして、検索結果の一覧画面に残っている既読メールを消
して未読メールだけにしたいのですが、検索一覧画面に再検索ボタンを追加すること
はできますでしょうか。
マクロを使うことで可能であれば、ご教示いただけると助かります。

よろしくお願いいたします。

[ ]
RE:11526 検索結果一覧画面に再検索ボタンNo.11528
秀まるお2 さん 23/07/21 15:28
 
 検索しなおしですが、検索結果のウィンドウの下の方にある

    検索(S)>>

 ボタンを押して出てくるメニューの一番上にある

    検索やり直し...

 ってコマンドを選択することで一応可能ではあります。ただ、それを実行した後に
検索やり直しが即実行されるんじゃなくて、秀丸メール本体ウィンドウ上に「検索し
て一覧作成」のダイアログボックスが出てきて、そこでEnterキーを押していただく
必要はあります。

 これをマクロでやるとしたら、ちょっと隠しコマンドコードになるんですが、4015
8番のコマンドコードをPostしてやればいいです。

    loaddll "tkinfo.dll";
    #n = dllfunc("Bypass_PostMessage", hidemaruhandle(0), 0x111, 40158, 0 );

 みたいなマクロになります。

 マクロを使った場合でも、やはり「検索して一覧作成」のダイアログボックスが出
てくる所までしかやってくれないので、その後Enterキーは押さないとダメです。

 それの他には、検索条件が決まってるならそれを実行するマクロでもいいんじゃな
いかと思います。例えば

    loaddll "tkinfo.dll";
    #n = dllfunc("AutoRestoreFindPack");
    #n = dllfunc("SetFindPack", "flag=!send&unread, subfolder=1");
    #n = dllfunc("StartDoGrep", "", "受信+送信済み+ユーザー");

 みたいなマクロにするか、または検索結果ウィンドウが既にある場合にそれを閉じ
て実行するなら、

    loaddll "tkinfo.dll";
    #n = dllfunc("SetMainWndTop");
    #n = dllfunc("CloseGrepWnd", 1);
    #n = dllfunc("AutoRestoreFindPack");
    #n = dllfunc("SetFindPack", "flag=!send&unread, subfolder=1");
    #n = dllfunc("StartDoGrep", "", "受信+送信済み+ユーザー");

 みたいなマクロがいいかもしれません。

 あと、検索フォルダを作っておく作戦も可能です。検索フォルダを作っておけば、
そこに出てくる「再検索」ボタンを押せば再建策してくれます。

[ ]
RE:11528 検索結果一覧画面に再検索ボタンNo.11534
mwave さん 23/07/22 08:34
 
ご返信ありがとうございます。

検索フォルダはアカウントの中にしか作れなかったので、そのアカウントの中だけの
検索だと思いこんでました。

検索フォルダで思っていたことができました。


できればアカウントの外(アカウントと同階層のところ)に検索フォルダが作れると
わかりやすいです。

ご対応いただき、ありがとうございました。

[ ]
RE:11534 検索結果一覧画面に再検索ボタンNo.11538
秀まるお2 さん 23/07/25 10:33
 
 アカウントの外に検索フォルダを作成するのは、すみませんが内部的な仕組み的に
考えて無理だろうと思います。

[ ]