
No.3ベストアンサー
- 回答日時:
前回の処理内容のいくつか単語を検索すればまぁすぐだと思いますが…
くやしいと思う程ならばもう少し自主的に検索をお勧めします。
まぁでも回答します。
FileSystemObject
http://officetanaka.net/excel/vba/filesystemobje …
前回の処理はFileSystemObjectを使用しています。
クラスからオブジェクト作成インスタンス化して実行と言う意味がわからなければもしかしたらサイトを見てもわからないかもしれませんが。
あと前回の処理ももう少し噛み砕いておきます。
'ファイルパスを定義します
Path = "C:\Users\takashi sato\Desktop"
'検索対象文字列を定義します
fin = "STTT"
'オブジェクトを定義し、FileSystemObjectオブジェクトを作成します。
Dim myfso As Object
Set myfso = CreateObject("Scripting.FileSystemObject")
Set gf = myfso.GetFolder(Path)
'指定フォルダにあるファイルの分だけforで回しファイル名と\マークで結合します。
For Each fl In gf.Files: fn = fn & fl.Name & "\": Next
'末尾につく\マークを除外し\マークから配列化させます
fn = Split(Left(fn, Len(fn) - 1), "\")
'エラーがあった場合処理をスキップする宣言
'テキスト形式で開けないまたは0KBのファイルはエラーが出るため。
On Error Resume Next
'もしもほかのファイルが混じる場合likeを使ってください。
'ファイル名 like "*.txt"などでよいでしょう。
For i = 0 To UBound(fn)
Set otf = myfso.OpenTextFile(Path & fn(i))
'readallを使いファイルを開き内容を変数に格納します
datas = otf.readall
'開いたデータに検索対象文字列があるか調べますある場合は\マークで結合していきます。
If InStr(datas, fin) > 0 Then filelist = filelist & fn(i) & "\"
'開いたら閉じる(目には見えませんがファイルは開きっぱなしにしない事)
otf.Close
Next
'末尾につく\マークを除外します
filelist = Left(filelist, Len(filelist) - 1)
'最後に内容を表示します。
MsgBox Replace(filelist, "\", vbCrLf)
以上
さらに補足・修正が欲しい場合言ってください。
No.2
- 回答日時:
回答です
Sub checkfiles()
Path = "C:\Users\takashi sato\Desktop"
fin = "STTT"
Dim myfso As Object
Set myfso = CreateObject("Scripting.FileSystemObject")
Set gf = myfso.GetFolder(Path)
For Each fl In gf.Files: fn = fn & fl.Name & "\": Next
fn = Split(Left(fn, Len(fn) - 1), "\")
On Error Resume Next
For i = 0 To UBound(fn)
Set otf = myfso.OpenTextFile(Path & fn(i))
datas = otf.readall
If InStr(datas, fin) > 0 Then filelist = filelist & fn(i) & "\"
otf.Close
Next
filelist = Left(filelist, Len(filelist) - 1)
MsgBox Replace(filelist, "\", vbCrLf)
End Sub
「C:\Users\takashi sato\Desktop」に任意の名前のテキストファイル”のみ”を複数置き実行すれば「STTT」の文字が書かれいてるテキストファイル名だけ表示します。量が多い場合msgboxでは完全には確認できませんが変数にはちゃんと格納されているので大丈夫です。
また上記では最低限の処理しかしていません。指定ディレクトリにあるファイルすべてをテキストとして開こうとするため予期しないファイルを開いたりしますので注意してください。
処理違いや補足・修正が欲しい場合言ってください。
argumentさまありがとうございます。
早速試してみますが、自分が理解できていないプログラムを使用するのはやはり悔しいので、いただいたプログラムを参考に勉強させていただきます。外部ファイル操作についてわかりやすい教材や、ホームページがあれば教えていただければ幸いです。
No.1
- 回答日時:
ちょっと質問が難解なのですが、テキストファイルの中の文字列を探すのは、Windows標準の検索機能で探せます。
XPの場合ですと、「スタート」ボタン、開いたメニューの左側に検索があるので、それをクリック。
何を検索しますか?と犬が聞いてくるので、この場合はファイルとフォルダ全てをクリックします。
そこで条件を入力できるので、ファイルに含まれる単語または句に「STTT」と入れて検索すれば、STTTという文字列のファイルが一覧となって出てくるはずです。
(ファイル名の全てまたは一部は空白で構いません)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- フリーソフト テキストファイル内を検索したい 1 2022/06/01 08:33
- Visual Basic(VBA) vbaサブフォルダーをワイルドカードで取得したい 2 2022/11/15 08:04
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- ドライブ・ストレージ Windows10でのファイル内の文字列検索 SSDに寿命? 4 2022/07/12 03:25
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- その他(ソフトウェア) 一太郎付属の”全件検索”ツールの不具合 3 2023/07/25 15:03
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- C言語・C++・C# C言語で 英文字のみからなる文字列、”Radar”、”WasItACatISaw”、”a”、””(空 5 2022/12/20 15:17
このQ&Aを見た人はこんなQ&Aも見ています
-
テキストファイルから特定の文字列が入った行を取得したいです。 例えば下記のような文が記載されたテキス
Visual Basic(VBA)
-
【VBA】テキストファイルから特定の文字列を抽出して、エクセルに出力する
Excel(エクセル)
-
ある文字列を含む行の抽出
Excel(エクセル)
-
-
4
[エクセル VBA]テキストファイルから特定の行のみを抜き出したい 下記のようなテキストファイルから
Excel(エクセル)
-
5
テキストファイルの一部分を抽出する方法について
Visual Basic(VBA)
-
6
Excel VBAでフォルダ内の全テキストファイルの任意データを取得について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
検索したファイルの場所を調べ...
-
Not kind:Folders
-
複数のワードのファイルから検索
-
拡張子KIHを見るソフトって有り...
-
ショートカットファイルそのも...
-
貼り付けとショートカットの貼...
-
エクスプローラの検索で期間と...
-
全CSVファイルに一行だけ追加し...
-
エクスプローラーの強制終了
-
クリップオーガナイザから削除...
-
ワードの作成日時と更新日時
-
右クリックメニューに「ファイ...
-
Windows10のメタデータの「メ...
-
onenote と windows journal
-
TIFファイルと同じBMPファイル...
-
Win 10エクスプローラーについ...
-
同じ名前のファイルをひとつの...
-
添付ファイルで送られてきたメ...
-
Win7フォルダ名入力中にIMEの変...
-
突然エクセルのデータが何ヶ月...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Not kind:Folders
-
検索したファイルの場所を調べ...
-
ショートカットファイルそのも...
-
Win 10エクスプローラーについ...
-
貼り付けとショートカットの貼...
-
コマンドプロンプトでファイル...
-
全CSVファイルに一行だけ追加し...
-
突然エクセルのデータが何ヶ月...
-
ワードの作成日時と更新日時
-
拡張子.EXTの解凍方法
-
拡張子KIHを見るソフトって有り...
-
自分だけファイルが見られるよ...
-
zip形式の動画をDVD-RWに保存し...
-
csvファイルの最後にeof(0x1a)...
-
Windows10のメタデータの「メ...
-
WindowsXPのインストールでプロ...
-
ファイル並び替え 秒まで
-
Win7フォルダ名入力中にIMEの変...
-
Windows10でファイル検索した後...
-
拡張子で並び替えする方法
おすすめ情報