「検索して一覧作成」での追加設定のご検No.07822
short long さん 21/03/18 19:23
 
秀まるお2 様

short long です。毎度お世話になっております。

コマンド「検索して一覧作成」において、以下のチェックボックスの項目があります。

  □大文字/小文字の区別
  □単語の検索
  □正規表現
  □あいま検索
  □改行/空白を無視
  ■見つからなかった方を対象とする
 
  ■追加の条件
 
  □検索文字列を強調

私はたまに「見つからなかった方を対象とする」をチェックして検索した後、新たな
検索の際には「見つからなかった方を対象とする」を意図せず、"見つかった方を対
象とする"にしたいのに、チェックを外すのを忘れ、検索文字列を入れると安心してO
Kとして検索を始めてしまい、"見つからなかった方を対象とする"の結果がズラーッ
とリストされてしまい、チェックを外して検索し直すことが多くあります。

ここで、「追加の条件」は、「上級者向け・その他・その他3」の以下のチェックボ
ックスで保持するかどうか選択できます。
  □検索ダイアログの「追加の条件」のON/OFF状態を保持する
 
そこで、「追加の条件」と同様に、以下の設定追加のご検討をお願いできないでしょ
うか?
  □検索ダイアログの「見つからなかった方を対象とする」のON/OFF状態を保持する

私はこれをチェックせずにして使いたいと考えております。
以上、よろしくお願いいたします。

[ ]
RE:07822 「検索して一覧作成」での追加設No.07824
秀まるお2 さん 21/03/19 09:41
 
 「見つからなかった方を対象とする」のオプションを保存せず、常にOFFで出てく
るようにするのは簡単に対応できるには出来ますが、他にもいろいろ条件があるので、
これはすみませんがマクロ置き換えを使ってやってほしいです。

 やり方を説明させていただきますと・・・

 マクロとして、「検索して一覧作成置き換え.mac」みたいなファイルで、以下のよ
うなマクロを作成します。

    loaddll "tkinfo.dll";
    $pack = dllfuncstr("GetFindPack");
    //message $pack;
    #x = strrstr( $pack, ", not" );
    if( #x >= 0 ) {
        $pack = leftstr( $pack, #x ) + midstr( $pack, #x + 5 );
    }
    #n = dllfunc("SetFindPack", $pack);
    #n = dllfunc("Bypass_PostMessage", hidemaruhandle(0), 0x111, 40066);

 それを「マクロ・マクロ登録...」の「コマンド置き換え」の所に、

    40066,検索して一覧作成置き換え.mac

 のように登録します。そうすると「検索して一覧作成」コマンド実行時に上記マク
ロが実行されて、結果、検索条件の6つのチェックマークが必ず全部全部OFFでダイ
アログボックスが出てきます。

 こういう作戦だとオプションすべて好きなようにコントロールできます。

 全部のオプションをOFFにしたい場合は、

    loaddll "tkinfo.dll";
    $pack = dllfuncstr("GetFindPack");
    //message $pack;
    #x = strrstr( $pack, ", not" );
    if( #x >= 0 ) {
        $pack = leftstr( $pack, #x ) + midstr( $pack, #x + 5 );
    }
    #x = strrstr( $pack, ", casesense" );
    if( #x >= 0 ) {
        $pack = leftstr( $pack, #x ) + midstr( $pack, #x + 11 );
    }
    #x = strrstr( $pack, ", word" );
    if( #x >= 0 ) {
        $pack = leftstr( $pack, #x ) + midstr( $pack, #x + 6 );
    }
    #x = strrstr( $pack, ", fuzzy" );
    if( #x >= 0 ) {
        $pack = leftstr( $pack, #x ) + midstr( $pack, #x + 7 );
    }
    #x = strrstr( $pack, ", noreturn" );
    if( #x >= 0 ) {
        $pack = leftstr( $pack, #x ) + midstr( $pack, #x + 10 );
    }
    #n = dllfunc("SetFindPack", $pack);
    #n = dllfunc("Bypass_PostMessage", hidemaruhandle(0), 0x111, 40066);


 みたいなマクロになります。逆に、例えば大文字/小文字の区別だけ常にONにした
い場合は、


    loaddll "tkinfo.dll";
    $pack = dllfuncstr("GetFindPack");
    //message $pack;
    #x = strrstr( $pack, ", not" );
    if( #x >= 0 ) {
        $pack = leftstr( $pack, #x ) + midstr( $pack, #x + 5 );
    }
    #x = strrstr( $pack, ", casesense" );
    if( #x >= 0 ) {
        //$pack = leftstr( $pack, #x ) + midstr( $pack, #x + 11 );
    } else {
        #x = strrstr( $pack, ")" );
        $pack = leftstr( $pack, #x ) + ", casesense" + midstr( $pack, #x );
    }
    #x = strrstr( $pack, ", word" );
    if( #x >= 0 ) {
        $pack = leftstr( $pack, #x ) + midstr( $pack, #x + 6 );
    }
    #x = strrstr( $pack, ", fuzzy" );
    if( #x >= 0 ) {
        $pack = leftstr( $pack, #x ) + midstr( $pack, #x + 7 );
    }
    #x = strrstr( $pack, ", noreturn" );
    if( #x >= 0 ) {
        $pack = leftstr( $pack, #x ) + midstr( $pack, #x + 10 );
    }
    #n = dllfunc("SetFindPack", $pack);
    #n = dllfunc("Bypass_PostMessage", hidemaruhandle(0), 0x111, 40066);


 みたいに「,casesense」を常に入れるような処理にすればいいです。

 こういう方式で自由にコントロールできて便利だと思います。

 便利そうなのでヘルプにも追記しようと思います。

[ ]
RE:07824 「検索して一覧作成」での追加設No.07825
秀まるお2 さん 21/03/19 09:52
 
 追加ですみません。検索条件を単純に固定にする場合なら、

    loaddll "tkinfo.dll";
    #n = dllfunc("SetFindPack", "(\"\",target=smallheaderbody), hilight=1");
    #n = dllfunc("Bypass_PostMessage", hidemaruhandle(0), 0x111, 40066);

 みたいな3行のマクロでも大丈夫です。

[ ]
RE:07825 「検索して一覧作成」での追加設No.07827
short long さん 21/03/19 14:44
 
秀まるお2 様

short long です。いつもながら迅速対応に感謝です。

最初にご提案いただいたマクロで、所望の動作が得られました。
なお、マクロファイルはフォルダ毎に管理したいので、以下のごとく「コマンド置き
換え」の所に登録しました。

40066,検索して一覧作成置き換え\検索して一覧作成置き換え.mac

今後必要に応じて派生マクロをアレンジしようと考えます。
どうもありがとうございました。

[ ]