- ベストアンサー
excelでの検索
excel2013です。 ファイル名での検索はいつもしていますが、ファイル内の検索は、各ファイル内しか出来ないのでしょうか? 例えば、複数のフォルダがあって、その中のファイル内の文字列を検索は出来ますか? ご存知の方、よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
秀丸テキストエディタ等のように「grep」機能が必要になります。 そこで一つご紹介です。 「ExcelGrep」というのがあります。 http://www.vector.co.jp/soft/win95/util/se375928.html 機能は上記ページ内の通りです。 試してみて下さい。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルファイルを対象にしてのことらしいので、エクセルVBAを使えばできるでしょう。 ただし、標準では1フォルダ内の探索をする例がWEBに載っているので、VBAプログラムで複数フォルダを対象に、前記のことを繰り返すことになるでしょう。 または手作業で、複数フォルダのブックを1フォルダにまとめておいて、例えば下記のプログラムを実行する。 フォルダ内のブックを扱うあたりは、VBAの兄弟のVbscriptで処理するのが、適しているだろう。WEBで照会すれば、沢山の例が出てくる。 ーー 検索して、でた結果を眺めているだけでよいのか?また次のステップで何かの処理が待っているのか、そういうことを質問に書かない質問が多いが、そこが肝心であろう。それができない性格の事項なら、上記のところまでできても仕方がない。 VBAはやったことがあるのか?なければを勉強する必要があるが、全般の勉強には時間がかかる。 ーー テストしてみると、処理時間が相当かかるようだ。 参考になるコード http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1149808046 ここのコードを使う、注意としては ・サブフォルダまでは、ない場合とする。 ・対象外の余分なブックはフォルダ内に置いてないこと。 ・Application.ScreenUpdating = Falseを最初に、Application.ScreenUpdating = Trueを最後に加えて入れること。 ・対象フォルダの中に、このプログラムのあるブックを入れないようにすること(たとえばデスクトップに、仮にそれを置いて(入れて)それの上記プログラムを実行すること。 ・この方法の特色は、Dir関数でフォルダ内のファイルを捉え、そのブックのシートをForEachNnextで捉え、シートのRangeのFindメソッドを使う方法を使ってっている。Dir関数のところは、Vbscriptでは、For Each objFile In objFolder.Files Nextといった繰り返しにする。 ・私のテストでは、シート1つ1つは簡単なシートで、シート数も少ない数のブックの寄せ集まりでも、3ブックあたり1秒ぐらいかかった。 ・上記のプログラムは、その中のkwdは1を検索する内容なので、変えること。 下記ではkwd="りんご" 結果例 私の場合の例で 「りんご」を検索すると、寄せ集め結果シートに A-D列 ブック名 シート名 行列位置 SUMIFSVBA.xlsm Sheet1 9 3 りんご コンボで選択.xlsm 27年9月売上表 2 2 りんご コンボで選択.xlsm 27年10月売上表 2 2 りんご コンボで選択.xlsm 目的シート 2 2 りんご ・・・・・ のように出た。
お礼
ありがとうございました。 勉強しないと理解するのは無理ですね。
- msMike
- ベストアンサー率20% (364/1804)
- dogs_cats
- ベストアンサー率38% (278/717)
エクセル2013の検索機能ではそのシート内でしか文字列検索は出来ません。 VBAで可能ですので勉強して下さい。 VBAはサンプルコードは多々有ります。それを組み合わせればご自身で作成可能です。 頑張って下さい。
お礼
ありがとうございました。
- mate0128
- ベストアンサー率30% (31/102)
エクスプローラの検索を使えば、各ファイル内の言葉も検索できますよ。でも、そのファイルの何行目という細かいところまでは出てこないので、その言葉を含むファイルが出てきたら、各ファイル内で再び検索する必要がありますね。
お礼
ありがとうございます。 そうですね。表示されるものもあれば、されないものもあります。 中々うかくいきません。
お礼
ありがとうございます。 一度このソフトでやってみます。