NextPrevCustomを使ったメール検索についNo.05948
Tetchiro さん 08/10/22 13:01
 
お世話になります。てっちろです。
秀丸エディタ Ver.7.09、秀丸メール Ver.5.10を使用しております。


最近、秀丸メールのマクロに取り組み始めたのですが、ひとつ疑問が出てきました。

 以下のようなマクロでNextPrevCustomを使い、マークされたメールを
検索、解除しているのですが、マークされたメールが処理されない事象
に遭遇しています。


共通条件
 マーク付きのメールを選択して、マクロを実行。
 マクロは、ツールバーに登録して、ボタンで実行。
 メール一覧はスレッド表示。

条件1:
 1件だけメールにマークしておく。
 そのメールを選択した状態で、マクロを実行する。

結果1:
 マクロ開始時のメールのマークが解除されない。
 (=検索スタート時のメールが検索対象に入っていない?)

条件2:
 2件のメールにマークしておく。
 マークしたのメールの1つを選択した状態で、マクロを実行する。

結果2:
 マクロ開始時のメールのマークが解除される。
 (=検索スタート時のメールが検索対象に入っている?)



 マークの数で、マクロ開始時のメールが検索対象に入るのか入らないのか
切り替わっているようで、混乱しております。

 これは、仕様と考えたほうがよろしいのでしょうか?
 それとも、何か私の勘違いがあるのでしょうか?

 ご教授いただけたら幸いです。



マークされたメールのマークを解除するマクロ
===============================================================
  loaddll "tkinfo.dll";
  if(!result) {
    message "このマクロは秀丸メールでしか実行できません。(またはtkinfo.dll
がロードできないエラーです)";
    endmacro;
  }
  if(!dllfunc("IsHidemaruMail")) {
    message "このマクロは秀丸メールでしか実行できません。";
    endmacro;
  }
  if(!dllfunc("IsHidemaruMailMain")) {
    message "このマクロは秀丸メール本体ウィンドウで実行してください。";
    endmacro;
  }

Step1:
  if(dllfunc("NextPrevCustom","Mark","down","","RollFolderAccount",1) == 0)
goto Step2;
  #n = dllfunc( "SwitchMark" );
  goto Step1;

Step2:
  endmacro;
===============================================================


[ ]
RE:05948 NextPrevCustomを使ったメール検No.05949
K'zawa さん 08/10/22 13:25
 
Tetchiroさん、こんにちは。
K'zawaです。

NextPrevCustomは、基本的に「移動」コマンドと考えたほうがよいと思います。
元の場所から移動しなければエラーです。

[ ]
RE:05949 NextPrevCustomを使ったメール検No.05950
Tetchiro さん 08/10/22 14:31
 
K'zawaさん、こんにちは。

つまり、
「移動する行為を行った」ならば「真」。
「行わなかった」ならば「偽」
となるということですね。

FindNextと同じようなものだと誤解していました。

まず現在のメールを確認して、次を検索するようにフローを変えてみます。
===============================================================
Step1:
  if(dllfunc("IsMarked")==1) dllfunc( "SwitchMark" );
  if(dllfunc("NextPrevCustom",
"Mark","down","","RollFolderAccount",1) == 1) goto Step1;
===============================================================
(改行が入って分かり難いですが)

[ ]
RE:05950 NextPrevCustomを使ったメール検No.05951
Tetchiro さん 08/10/22 14:41
 

FindFirstとの関係を考えると、一緒でした。

>FindNextと同じようなものだと誤解していました。

[ ]