Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10全般 : Microsoft 365)
ファイルの文字列検索
投稿日時: 23/07/09 01:29:29
投稿者: ショウジ

今回初めて投稿させて頂きます。ショウジと申します。
エクセルvbaに詳しい方がいらっしゃいましたら、ご教授願います。
早速ですが、やりたい事として1つのフォルダ(フォルダ名:検索フォルダ)の中にに、エクセルファイルとパワポのファイルが全部で100件ぐらいあります。
それら各ファイルの中に、みかん、りんご、いちご、バナナ、スイカ、これら指定の文字列が存在するか確認し、
指定の文字列がひとつでも存在する場合は、そのファイル名と該当する文字列を別の新規エクセルシートに転記、
指定の文字列がひとつも存在しない場合は、そのファイル名のみを上記に記載した別の新規エクセルシートに転記したいのですが、何か良い方法はありますでしょうか?
ひとつひとつのファイルでctr+Fで検索するには時間も労力もかかってしまい困っております。
フリーソフトなどを使わず、vbaで処理できるものですか?
有識者の方のお知恵をお借りしたいと考えております。
何卒よろしくお願い致します。

回答
投稿日時: 23/07/09 08:05:26
投稿者: WinArrow

質問の内容は、VBAでも対応可能ですが、
Excelの一般機能でも対応できます。
 
内容から察するに、頻繁に発生する処理ではないと推測します。
VBAの大きな目的は、比較的頻度が高い処理を自動化することにあります。
頻度が少ないからVBAでは、ダメということではありません。
 
それから「掲示板利用上のお願い」に書かれているように、
「コードの作成依頼」は、NGです。↓をよく読んでください。
https://www.moug.net/faq/kiyaku.html
 
一般的な処理手順を書きます。
 
(1)対象フォルダ内のファイル名一覧表を取得する。
  →DOSコマンド:DIRを使用すればテキストファイルで取得できます。
  →「フォルダ内のファイル名などの情報を取得して一覧にする方法」でWEB検索してみてください。
(2)テキストファイルをExcelシートに読み込む
(3)文字列で対象を抽出する
 →COUNTIF関数 or オートフィルタ orフィルタオプション等を使用する
(4)選択したセル範囲を他ブック、他シートに複写する→保存する
というような手順になると思います。
頑張って、トライしてみましょう。
その中で、詰まったら質問するようなスタンスをお願いします。
 

回答
投稿日時: 23/07/09 21:32:35
投稿者: MMYS

WinArrow さんの引用:

(1)対象フォルダ内のファイル名一覧表を取得する。
  →DOSコマンド:DIRを使用すればテキストファイルで取得できます。

今回のケースは

> それら各ファイルの中に、<中略> これら指定の文字列が存在するか確認し、

とあるようにファイル名ではなく、ファイルの中を検索と思うのですが。
一応、DIRではなく、FINDコマンドなら可能で
 
・FINDコマンド
・ワイルドカード
・リダイレクト
 
を組み言わせれば、テキスト化は可能だけど。
(あと検索条件は、1個ではなく、複数の文字列たらか、どうなんでしょう)
 
 
ショウジ さんの引用:

フリーソフトなどを使わず、vbaで処理できるものですか?

フリーソフトを使わない理由はなぜですか。
 
希望動作のサンプルを検索するとVBAサンプルは見つかります。たたし、サンプルですから、ご自身で内容を理解する知識が必要です。VBAはどの程度、理解されていますか
 

回答
投稿日時: 23/07/09 22:24:57
投稿者: WinArrow

MMYSさんご指摘ありがとうございます。

引用:

ファイル名ではなく、ファイルの中を検索と思うのですが

てっきりファイル名とばかり・・・・勘違いしていました。
 
ファイルの中身を検索するとなると、結構面倒になりますね・・・・・
>そのファイル名と該当する文字列を・・・・
文字列は、セルの値ということなの?
 
パワポのファイルは、PPTのVBAを使うことになりますね?
 

回答
投稿日時: 23/07/09 22:33:40
投稿者: WinArrow

Exceのセルの検索は、FINDメソッドを使えば探せるが、
図形の中の文字列もあるのかな?

回答
投稿日時: 23/07/10 10:51:43
投稿者: hatena
投稿者のウェブサイトに移動

下記でも回答しましたが、Windowsのエクスプローラーの全文検索を使うのも検討されては?
 
『vbaでフォルダ内の文字列検索について』(タカ) エクセル Excel [エクセルの学校]
https://www.excel.studio-kazu.jp/kw/20230708114319.html

トピックに返信