「検索して一覧作成」の条件入力についてNo.47463
styth さん 15/01/28 10:15
 
 「検索して一覧作成」を実行するときに、条件を複数でしていするんですが、
条件1の所に、スペースで区切って、検索文字列をしてすると、条件1〜条件4
のタブを切り換えなくても条件1〜4を満たすように検索するような機能があれ
ば便利だと思います。
 それとも、もう、そういうことができるなら、ご教授下さい。
 よろしくお願いします。

[ ]
RE:47463 「検索して一覧作成」の条件入力No.47465
秀まるお2 さん 15/01/28 10:32
 
 実は同じことを考えたユーザー様が以前にもおられまして、マクロで実現して
います。

 うちのライブラリにアップロードしてもらってます。

  http://hide.maruo.co.jp/lib/tkmacro/turukamesearch_302.html

[ ]
RE:47465 「検索して一覧作成」の条件入力No.47466
styth さん 15/01/28 11:19
 
> 実は同じことを考えたユーザー様が以前にもおられまして、マクロで実現して
>います。
 できました。ありがとうございます。
 ただ、検索文字列を入力する際、漢字モードにしたいのですが、できません。
 一旦、漢字モードにして、マクロ実行後、別の条件で入力したいとしても、英
数モードに戻っています。
 作者の方のホームページに上記内容を投稿しましたが、今は受け付けていない
ようです。
 何か良い方法はないのもでしょうか?
 よろしくお願いします。

[ ]
RE:47466 「検索して一覧作成」の条件入力No.47467
styth さん 15/01/28 11:21
 
> ただ、検索文字列を入力する際、漢字モードにしたいのですが、できません。
 訂正します。
  ただ、検索文字列を入力する際、いきなり、漢字モードにしたいのですが、でき
ません。

[ ]
RE:47467 「検索して一覧作成」の条件入力No.47469
秀まるお2 さん 15/01/28 11:49
 
 マクロの先頭に

    imeswitch;

 を入れれば漢字モードに切り替わる可能性が高いように思います。一回試して
みて欲しいです。

[ ]
RE:47465 「検索して一覧作成」の条件入力No.47470
styth さん 15/01/28 11:50
 
 後もう1点、なんですが、
 教えて頂いたマクロを実行すると、検索文字列が強調表示されます。(エディ
タで開いた時も)
 両方とも、強調表示されないようにしたいのですが、マクロをどう直せば良い
んでしょうか?
 個人的に使う分には良いと思いますので、教えて頂けないでしょうか?
 よろしくお願いします。

[ ]
RE:47469 「検索して一覧作成」の条件入力No.47471
styth さん 15/01/28 12:15
 
> マクロの先頭に
>    imeswitch;
> を入れれば漢字モードに切り替わる可能性が高いように思います。一回試して
>みて欲しいです。
 駄目でした。

[ ]
RE:47471 「検索して一覧作成」の条件入力No.47472
秀まるお2 さん 15/01/28 14:12
 
 では、たとえばですが、

    if( imestate == 0 ) {
        imeswitch;
    }
    $s = input("aaa");

 ってマクロを実行して、出てきたダイアログボックス上で漢字モードになるで
しょうか。それでもダメでしたら、「設定・全般的な設定...」の「上級者向け
- かな漢字変換」の「秀丸メール本体ウィンドウがアクティブになった時、自動
的にかな漢字変換をOFFにする」のオプションをOFFにしてどうかも教えてほしい
です。

[ ]
RE:47470 「検索して一覧作成」の条件入力No.47473
秀まるお2 さん 15/01/28 14:18
 
 今ダウンロードして見てみたんですが、このマクロはTuruKameSearch.exeって
いう外部プログラムを起動してて、あとはこのプログラムが全部仕切ってるよう
です。なので、検索条件を書き換えたりってことは出来ないようです。

 input文で検索文字列を入力してもらって検索する簡単なマクロってことで一
回作ってみるか、または以前そういうマクロ作った気もするので過去ログ探して
みます。少々お待ちください。

[ ]
RE:47473 「検索して一覧作成」の条件入力No.47474
秀まるお2 さん 15/01/28 14:31
 
 過去ログを探したらありました。

 かな漢字変換をONにする処理も入れて、以下のようにしてみましたけど、こん
なんでどうでしょうか。改良したい点があれば、マクロヘルプのSetFindPackの
所を見て直していただいてもいいし、直し方が分からなければ、僕の方で直して
もいいです。

------------TuruKameGoogleLikeGrep.mac-----------------
//秀丸メール用、Google風検索マクロ by 秀まるお
//
//2012.11.01
// turukame.2:03435| 検索方法に関する要望
//

    loaddll "tkinfo.dll";
    if( imestate == 0 ) {
        imeswitch;
    }
    $s = input( "検索文字列は?" );
    if( $s == "" ) {
        endmacro;
    }
    #count = 0;
    $find[0] = $s;
    while(1) {
        #x = strstr( $find[#count], " " );
        #x2 = strstr( $find[#count], " " );
        if( (#x >= 0 && #x2 >= 0 && #x2 < #x) || (#x < 0 && #x2 >= 0) ) {
            #x = #x2;
        }
        if( #x > 0 ) {
            $find[#count+1] = midstr( $find[#count], #x, 9999 );
            $find[#count] = leftstr( $find[#count], #x );
            #count = #count + 1;
            while( 1 ) {
                if( leftstr( $find[#count], 1 ) == " " ) {
                    $find[#count] = midstr( $find[#count], 1, 9999 );
                } else if( leftstr( $find[#count], 2 ) == " " ) {
                    $find[#count] = midstr( $find[#count], 2, 9999 );
                } else {
                    break;
                }
            }
        } else {
            break;
        }
    }
    #count = #count + 1;
    if( #count > 4 ) {
        message "4つ以上の文字列は検索できません。";
        endmacro;
    }
    #i = 0;
    while( #i < #count ) {
        if( #i != 0 ) {
            $set = $set + " and ";
        }
        $set = $set
            + "(\"" + dllfuncstr("YenEncode", $find[#i] ) + "\""
            + ", target=smallheaderbody)";
        #i = #i + 1;
    }
    $set = $set + ",subfolder=1,inmail=2,hilight=0";
//  $backup = dllfuncstr("GetFindPack");
    #n = dllfunc("SetFindPack", $set);
    #n = dllfunc("PushFindPack");
    #n = dllfunc("DoGrep", "", "受信+送信済み+ユーザー");
//  #n = dllfunc("SetFindPack", $backup);
    endmacro;

[ ]
RE:47474 「検索して一覧作成」の条件入力No.47477
styth さん 15/01/29 10:10
 
「検索して一覧作成」で、検索文字列が強調表示されていたとします。
 強調表示を解除するマクロを教えて頂きたいのですが、よろしくお願いします。

[ ]
RE:47477 「検索して一覧作成」の条件入力No.47480
秀まるお2 さん 15/01/29 14:14
 
 検索結果の中のメール内容表示の中での、検索文字列の強調表示ですが、これ
は検索実行時点での「検索文字列を強調」のオプションに連続してて、後でOFF
にするってことは出来ないです。現状でなんとかするとしたら、検索結果
ウィンドウの下の方にある「検索>>」ボタンのメニューの中の「検索やり直
し...」を実行して、「検索文字列を強調」をOFFにしてもう一回実行しなおすし
か無いです。

 しいて、検索文字列の強調だけON/OFF切り替えしたいってことでしたら、それ
用の機能を追加しないと実現不可になります。

[ ]
RE:47480 「検索して一覧作成」の条件入力No.47482
秀まるお2 さん 15/01/29 14:27
 
> ………………………「検索文字列を強調」のオプションに連続してて、

 「連続」じゃなくて、「連動」でした。

 必要なら、とりあえずマクロの関数(tkinfo.dllの関数)追加でなら簡単に対
応は可能かと思います。

[ ]
RE:47482 「検索して一覧作成」の条件入力No.47483
styth さん 15/01/29 14:40
 
> 必要なら、とりあえずマクロの関数(tkinfo.dllの関数)追加でなら簡単に対
>応は可能かと思います。
 追加して頂けると、幸いです。よろしくお願いします。

[ ]
RE:47483 「検索して一覧作成」の条件入力No.47486
秀まるお2 さん 15/01/30 11:29
 
 SetFoundHilightって関数を追加させていただきます。

    loaddll "tkinfo.dll";
    #n = dllfunc("SetFouncHilight", 0);

 とすると強調を解除します。

 パラメータに1を指定するとメール内容の中だけで強調し、2を指定すると、
メール一覧+内容の両方で強調します。

 検索結果の一覧上でも秀丸メール本体ウィンドウ上でも実行できるようにしま
す。

 次のβ版は来週くらいにアップロードしようかなぁと思います。

[ ]
RE:47486 「検索して一覧作成」の条件入力No.47487
秀まるお2 さん 15/01/30 11:37
 
 サイト−企画の斉藤秀夫です。

>     #n = dllfunc("SetFouncHilight", 0);

    #n = dllfunc("SetFoundHilight", 0);

 の間違いでした。

[ ]
RE:47474 「検索して一覧作成」の条件入力No.47489
styth さん 15/02/01 11:28
 
>    $s = input( "検索文字列は?" );
 input文に、今まで入力した文字列の履歴から文字列を選べるように、して頂
けないでしょうか?
 秀丸エディタの問題かもしれませんが、よろしくお願いします。

[ ]
RE:47489 「検索して一覧作成」の条件入力No.47490
秀まるお2 さん 15/02/02 09:51
 
 秀丸マクロのinput文は、単純なテキスト入力の欄があるだけで、それに履歴
をつけるような高度なことは出来ないです。

 履歴を出すためには検索する度にその履歴を何らかの形でファイルや
レジストリに保存しないといけなくて、マクロで実現しようと思ったらかなり面
倒な話になります。(がんばれば出来なくはないですが)

 「検索して一覧作成」で複数条件指定するのも、そもそもCtrl+Tabキーで切り
替えて文字列入力すればそんな手間じゃないと思うし、慣れでなんとかなりそう
な気もします。

[ ]
RE:47473 「検索して一覧作成」の条件入力No.47495
styth さん 15/02/03 15:38
 
  > 今ダウンロードして見てみたんですが、このマクロはTuruKameSearch.exeって
>いう外部プログラムを起動してて、あとはこのプログラムが全部仕切ってるよう
>です。なので、検索条件を書き換えたりってことは出来ないようです。

 このマクロを、
 //run $program + " \"" + dllfuncstr( "CurrentAccount" ) + "\" \"" + dllfun
cstr( "CurrentFolder" ) + "\" \"" + $seltext + "\"";
 runsync $program + " \"" + dllfuncstr( "CurrentAccount" ) + "\" \"" + dllf
uncstr( "CurrentFolder" ) + "\" \"" + $seltext + "\"";
 とし、

  endmacro;の直前に、

  #n = dllfunc("SetFoundHilight", 0); //強調を解除

  を追加しました。
  ところが、強調を解除されません。
  単独ではできましたが、runsyncとの相性なんでしょうか?
  よろしくお願いします。

[ ]
RE:47495 「検索して一覧作成」の条件入力No.47496
秀まるお2 さん 15/02/03 19:16
 
 こちらでもマクロを手直してしてなんとかならないかやってみたんですが、
ダメみたいです。

 このマクロはrunしたプログラム側からコマンドラインで秀丸メールを起動し
て「検索して一覧作成」を実行させるようになってるので、そのコマンドライン
による検索が実行されるためには秀丸メール本体ウィンドウがアイドル状態、つ
まり、マクロを実行してない状態でないとダメです。

 なので、このマクロのrun文の後に何か処理を入れてもダメです。

 検索結果ウィンドウが出た後にマクロを実行するのは、手動でやるしか無いと
思います。

[ ]
RE:47496 「検索して一覧作成」の条件入力No.47497
styth さん 15/02/04 10:00
 
> こちらでもマクロを手直してしてなんとかならないかやってみたんですが、
>ダメみたいです。
> このマクロはrunしたプログラム側からコマンドラインで秀丸メールを起動し
>て「検索して一覧作成」を実行させるようになってるので、そのコマンドライン
>による検索が実行されるためには秀丸メール本体ウィンドウがアイドル状態、つ
>まり、マクロを実行してない状態でないとダメです。
> なので、このマクロのrun文の後に何か処理を入れてもダメです。
> 検索結果ウィンドウが出た後にマクロを実行するのは、手動でやるしか無いと
>思います。
 了解しました。

[ ]