検索して一覧作成ダイアログボックス(Ver7.33対応版)
条件1〜条件4、AND/OR
 複数の条件を指定してメールを検索したいときに、条件1〜条件4のタブを切り換えて、検索条件を入力してください。最大4つまで、条件が入力できます。
 それら複数の条件すべてを満たしたメールのみを検索したい場合は「AND」をONにし、どれか1つの条件に当てはまればよい場合には「OR」をONにしてください。

 条件1〜条件4は、Ctrl+TabキーまたはCtrl+Shift+Tabキーによって切り換えることができます。


検索
 検索したい文字列を指定します。「正規表現」または「あいまい検索」をONにする場合は、ここには正規表現のパターンを入力します。

 検索文字列の欄の右側にある「▼」を押して出てくるリストの一番下に、「アドレス帳から選択...」があります。それを選択すると、アドレス帳からメールアドレスやグループを拾ってくることが出来ます。アドレス帳のグループを対象とした検索については「対象」の所が「(メールアドレス検索)」になってないとダメで、他の部分を対象とした検索の時にはアドレス帳・グループを対象とした検索はうまく動作しません。その点ご注意ください。

検索文字列の警告表示について


対象
 各メールの中での検索対象の部分を指定します。
 「From/To列表示用のキャッシュ」というのは、メール一覧のFrom/To列を描画する用にメモリ上に保持している文字列のことで、ここには、From/To列に表示する用に、例えば受信系メールであれば、From:ヘッダ中の名前+メールアドレスの文字列が入っています。送信系メールの場合は一番最初の宛先の名前+メールアドレスがはいっています。
 「件名+From/To列表示用のキャッシュ」は、「From/To列表示用のキャッシュ」にさらにSubject:ヘッダ内容を対象に加えた物です。高速に検索します。

 「特定のヘッダ内...」を選択すると、その下に「特定のヘッダ」って欄が出てきて、そこで検索対象のヘッダが指定できます。ここには4つまでのヘッダを「/」で区切って指定することが出来ます(Version 6.50β2より)。例えばFrom:ヘッダ、To:ヘッダ、Cc:ヘッダ、Bcc:ヘッダの4つを検索対象にしたい場合は、「From:/To:/Cc:/Bcc:」のように指定してください。
 特定ヘッダの名前の先頭に「@」を付けると、指定されたヘッダの中身をコンマ区切りメールアドレスのみ文字列に変換した内容に対して検索が実行されます。たとえば「@To:/Cc:」と指定すると、To:およびCc:ヘッダの中身のメールアドレスのみに対して検索が実行されます。「@」は一番先頭にのみ指定可能で、指定すると、複数指定されたヘッダすべてがメールアドレスのみに変換されます。(Version 6.87β6から)
対象ヘッダの例:
X-Attach: 添付ファイル・ファイル名からの検索
X-TuruKame-Filter: 迷惑メールフィルターの振り分け結果
From: 差出人
@From: 差出人のメールアドレス
To:/Cc:/Bcc: 宛先
@To:/Cc:/Bcc: 宛先のメールアドレスのみの文字列
 「特定ヘッダの結合文字列」は、「特定のヘッダ内」と似てますが、検索の仕組みが違ってて、たとえば「From:ヘッダは何々でTo:ヘッダは何々である」みたいな複数のヘッダについての複合的な条件でメールを探すことが出来ます。
 たとえば特定ヘッダとして"From:/To:"を指定した場合、対象のメールのFrom:が"a"でTo:が"b"のようになってたとすると、"from:a\nto:b\n"のような文字列が生成されて、それに対して検索が実行されます。
 対象ヘッダが複数あった場合は、その複数の内容をコンマ区切りにした1つのヘッダに変換されます。たとえば
To: aaa
To: bbb
 のようなメールがあった場合、To:ヘッダは「to:aaa,bbb」のような文字列に変換されます。
 指定されたヘッダ自体が存在しない場合は空のヘッダがあるのと同じ扱いになります。たとえばCc:ヘッダが存在しないメールでも、対象ヘッダにCc:を指定した場合は、"cc:\n"の文字列が生成されて、それに対して検索が実行されます。
検索文字列の例:
検索したい目的 特定ヘッダの指定 検索文字列(正規表現)
From:が「hoge1@hoge.com」で、かつ、To:に「hoge2@hoge.com」を含むメールを探す例 @From:/To: ^from:hoge1@hoge\.com\nto:(|.*,)hoge2@hoge\.com(,|\n)
From:とTo:がまったく同一のメールを探す例 From:/To: from:(.+)\nto:\1\n
From:に含まれるメールアドレスがCc:にも入ってるメールを探す例 @From:/Cc: from:(.+)\ncc:(|.*,)\1(,|\n)
a@hoge.jpさんからb@hoge.jpさんへのメールか、またはb@hoge.jpさんからa@hoge.jpさんへのメール @From:/To (from:a@hoge\.jp\nto:(|.*,)b@hoge\.jp)|(from:b@hoge\.jp\nto:(|.*,)a@hoge\.jp)
 特定ヘッダとして、例外的に、「body」を指定すると、ヘッダじゃなくてメール本文を対象にすることが出来ます。たとえば「From:/body」と指定すると、from:ヘッダがあって、改行(\n)があって、その後ろにメール本文がある文字列が検索対象文字列になります。
 ここの「特定ヘッダの結合文字列」での検索では、正規表現パターンの「^」は対象文字列の先頭にのみヒットし、対象文字列途中にある改行文字の次の位置にはヒットしません。

 X-Attach:ヘッダを対象に指定した場合で、添付ファイル・ファイル名に外国語が使われてる場合、X-Attach:ヘッダ中の外国語にうまくヒットするように、秀丸メール内部でややこしい変換がされます。普通に文字列検索する場合はそれでヒットしますが、「^」や「$」を使った正規表現パターンがうまくヒットしないことがあります。その辺ご注意ください。


 「発信元の国識別」を指定すると、メールの発信元の国識別を調べて、その結果文字列に対して検索が実行されます。国識別は、例えば日本なら"JP"、アメリカなら"US"のような2文字の英字です。発信元の国が特定出来なかった場合は"??"、発信元の特定でエラーになった場合(主にReceived:ヘッダが無い場合)は空の文字列になります。
 「メールアドレス検索」、「Message-Id検索」については一部制限があります。詳しくは以下を参照ください。
 メールアドレス検索ダイアログボックス
 Message-Id検索ダイアログボックス

 「本文(「^」は本文の先頭にのみヒット)」は、メール本文を対象とするのですが、正規表現で「^」を指定した場合に、その「^」がメール本文の先頭にのみヒットします。例えば「^あいう」と指定すると、メール本文の先頭が"あいう"で始まるメールにのみヒットします。例えば「(?#maxlines:5)^(.*\n){0,4}.*名前」のような検索をすると、メール本文の1行目から5行目までに"名前"って文字列があるメールにのみヒットします。


大文字/小文字の区別 等
 秀丸エディタの検索ダイアログボックスと同じです。

 正規表現について


検索対象フォルダ
 検索対象のフォルダとして、特定のフォルダ(およびその配下)、現在のアカウント、すべてのアカウントが指定できます。
 特定のフォルダを指定する場合、そのフォルダの配下にあるフォルダを含めるかどうかも指定できます。さらに、配下のフォルダを含める指定をしたとして、配下にもしも検索フォルダがあった場合に、その検索フォルダにリストアップされてるメールも対象とするかどうかを指定する用の、「検索フォルダ含む」の指定もできます。
 「現在アカウント」または「すべてのアカウント」を指定した場合でも、受信ログフォルダおよび送信ログフォルダは検索対象から除外されます。
 「現在アカウントグループ」を選択した場合で、現在選択してるアカウントがどのアカウントグループにも属してない場合には、「どのアカウントグループにも属してないアカウントすべて」を対象とします。

追加フォルダの指定
 検索対象フォルダに「フォルダ - XXXX」を指定した場合に限り、追加で検索したいフォルダを指定出来ます。「追加フォルダの指定」をONにして、右側の「...」ボタンを押してフォルダを選択(スペースキーで選択ON/OFF)してください。複数のフォルダを指定することも出来ます。

除外フォルダの指定
 検索から除外したいフォルダがある場合は、ここのチェックボックスをONにした上で、右側の「...」ボタンを押して、除外対象フォルダを指定してください。
 追加フォルダと除外フォルダの両方で同じフォルダを指定した場合は、そのフォルダは検索対象になります。



スレッド的につながるメールも検索結果に追加する
 このオプションをONにすると、指定された条件で検索した後に、その結果のメール1通ずつについて、そのメールにスレッド的につながるメールをアカウント内から全検索して検索結果に追加します。
 スレッド的につながるメールを探すのにはそれなりに時間がかかります。

制限:
 ここで計算する「スレッド的につながるメール」は、高速化のために、Message-Id: / References: / In-Reply-Id:ヘッダによるスレッドのつながりだけを見て計算します。スレッド表示の設定にある「Re:で始まるメールを無理矢理連結する」のオプションは効きません。

 このコマンドによるスレッドの検索は、内部的な情報を使った簡易な方法で実行されます。なので、非常に高速ではありますが、たまに間違ったメールがスレッドに混じって出てきてしまう可能性がほんの少しだけあります。それだけご了承ください。

ゴミ箱を含むかどうかについて
 「全般的な設定・上級者向け・その他・その他2」の「簡単メールアドレス検索/「このメールのスレッド」コマンドで、ゴミ箱フォルダは検索対象から外す」をONにすると、検索対象からゴミ箱が外れます。


追加の条件
 文字列ではなく、メールのフラグによる条件で検索したい場合にここのボタンを押して指定します。
 追加の条件のみを指定したい場合(文字列の検索はしない場合)には、「追加の条件」だけ設定して、「検索」の文字列欄には何も入力しないで検索を実行してください。

 「追加の条件」が何か指定されている場合には、ボタンの先頭にチェックマークが表示されます。

 追加の条件ダイアログボックス


文字コード
 検索文字列についての文字コードを指定します。ここの指定はあくまで検索文字列についての文字コード指定であり、検索対象メールの文字コードを限定するための物ではありません。なので、例えば文字コードを「欧文」と指定して検索文字列に「A」と指定しても、 日本語メール中の「A」にもヒットします。また、欧文文字での特殊文字を検索すると、それと同じ文字コードの日本語の文字(例えば半角カナなど)にヒットしてしまうことがあります。

■WindowsNT/2000/XPまたはそれ以降のWindowsの場合
 ここは「(自動)」にしておいて、検索文字列には任意の言語の文字を入力すれば、普通はそれで文字コードが自動判定されます。しかし、例えば中国語と日本語で同じ漢字が存在している場合などで、中国語で検索させたい場合には、 ここの所で文字コードを指定してください。


■Windows95/98/Meの場合
 Windows95/98/Meの場合は、文字コードを適当に切り替えないと、欧文文字や中国語などが入力できません。ここで文字コードを切り替えてから、必要な外国語文字を入力してください。




検索文字列を強調
 検索結果の一覧上で「内容の表示」をONにして内容表示した場合に、そこの中で検索でヒットした文字列を強調表示するかどうか指定します。さらに、メール一覧の中でのヒット対象のメールについても、 「全般的な設定・メール内容表示・記号類の表示とカラー...・検索文字列の強調」で指定した色で強調表示するようになります。
 ここのオプションをONにしても、検索条件の指定によってはメール内容中の対象文字列が強調表示されません。たとえば検索条件を複数指定した場合や「追加の条件」を指定した場合や、「改行/空白を無視」、 「見つからなかった方を対象とする」をONにした場合はだめです。


●検索条件の履歴について
 検索ダイアログボックスの左上のシステムメニュー(▼マーク)をクリックすると、検索条件の履歴がテキストで表示されます。履歴を選択すると、過去の検索条件で再検索することができます。

 検索条件は20個まで記憶されます。

 検索条件の履歴の上でマウス右ボタンを押すと、「ヒストリに常駐」などのメニューが表示されます。そこで常駐を指定すると、メニュー項目の右端に星マークが出てきて、その項目は履歴から消えなくなります。


●検索文字列の履歴について
 検索文字列を入力する欄の「▼」を押すか、または下矢印キーを押すと、検索文字列についての履歴が表示されます。そこでマウス右ボタンを押すと、検索条件の履歴と同様に「ヒストリに常駐」などが指定できます。(V6.10より)
 補足:検索文字列の履歴機能は、WindowsXP以上でのみ有効です。Windows95/98/Me/2000では機能しません。


●検索を高速化するコツ
 秀丸メールは、メール一覧の表示用のキャッシュデータをメモリ上に持っています。検索の処理が、もしもそのキャッシュデータを対象として実行する場合には、メール用のファイルにアクセスすることなく、すべてメモリ上で検索処理を実行出来ます。
 検索を高速化するためには、なるべくメール用ファイルにアクセスさせないで検索出来るような条件を指定するのがいいです。
 そのコツをいくつか列挙します。

  • メールアドレス検索またはMessage-Id検索は大変高速です。さらにはメールアドレス検索での「おおざっぱ検索」をONにするか、または対象ヘッダを絞り込めば絞り込む程高速に検索します。特に「From:」のみを対象としたメールアドレス検索は一番高速です。
  • 「対象(X):」の所に「件名(Subject)」または「メモ」または「From/To列表示用のキャッシュ」を指定すると高速です。ただし、Subject:ヘッダが極端に長い場合やメモ内容が極端に長いメールがある場合は遅くなります。それと、条件1〜条件4で別々の対象(X)を指定した場合も遅くなります。
  • 「追加の条件」を指定すると高速化します。例えば「添付ファイル付きメール」のフラグを指定した場合、添付ファイル付きのメールかどうかをメモリ上で判断した上で、添付ファイル付きであることが確かなメールについてのみメール用ファイルにアクセスして検索する形になり、結果、ファイルアクセス量を激減させることが出来ます。
  • 複合的な条件を指定する場合は、条件1にてあえて高速になる用の条件を指定した上で、条件2以降を指定するのがおすすめです。例えば「From:がAAAAでTo:がBBBBのメール」を探したい場合には、まずは条件1の方で「To:From:表示用のキャッシュ」を指定して、そこに正規表現で「AAAA|BBBB」みたいな条件を指定すれば、条件2以降の判定に行くメールが限定できて、高速になります。


●ダイアログボックス上のオプションの初期値の指定
 「検索して一覧作成」コマンド実行直後の「大文字/小文字の区別」や「単語の検索」などのオプションは、基本的には前回実行時の状態そのままで出てきます。これを意図的にON固定またはOFF固定にしたい場合は、マクロと「コマンド置き換え」の仕組みを使ってください。

 マクロの例としては、例えば「検索文字列を強調」のみONでその他全部OFFにしたいなら、
    loaddll "tkinfo.dll";
    #n = dllfunc("SetFindPack", "(\"\",target=smallheaderbody), hilight=1");
    #n = dllfunc("Bypass_PostMessage", hidemaruhandle(0), 0x111, 40066);
 みたいなマクロを作成して、それを例えば「検索して一覧作成置き換え.mac」のような名前で保存して、「マクロ・マクロ登録...」の「コマンド置き換え」ページにて、
	40066,検索して一覧作成置き換え.mac
 のように登録してください。

 「大文字/小文字の区別」だけONにして他は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 );
    } 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);
 「追加の条件」のオプションは毎回OFFで出てくるのが標準の動作になってますが、「全般的な設定・上級者向け・その他・その他3」の「検索ダイアログの追加の条件のON/OFF状態を保存する」をONにすると、前回の状態をキープして出てくるようになります。