
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では完全には確認できませんが変数にはちゃんと格納されているので大丈夫です。
また上記では最低限の処理しかしていません。指定ディレクトリにあるファイルすべてをテキストとして開こうとするため予期しないファイルを開いたりしますので注意してください。
処理違いや補足・修正が欲しい場合言ってください。
この回答へのお礼
お礼日時:2008/09/12 12:48
argumentさまありがとうございます。
早速試してみますが、自分が理解できていないプログラムを使用するのはやはり悔しいので、いただいたプログラムを参考に勉強させていただきます。外部ファイル操作についてわかりやすい教材や、ホームページがあれば教えていただければ幸いです。
No.1
- 回答日時:
ちょっと質問が難解なのですが、テキストファイルの中の文字列を探すのは、Windows標準の検索機能で探せます。
XPの場合ですと、「スタート」ボタン、開いたメニューの左側に検索があるので、それをクリック。
何を検索しますか?と犬が聞いてくるので、この場合はファイルとフォルダ全てをクリックします。
そこで条件を入力できるので、ファイルに含まれる単語または句に「STTT」と入れて検索すれば、STTTという文字列のファイルが一覧となって出てくるはずです。
(ファイル名の全てまたは一部は空白で構いません)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
拡張子.EXTの解凍方法
-
Not kind:Folders
-
突然エクセルのデータが何ヶ月...
-
貼り付けとショートカットの貼...
-
エクスプローラの検索で期間と...
-
ワードの作成日時と更新日時
-
Excelのシート名で検索はできま...
-
Win 10エクスプローラーについ...
-
検索したファイルの場所を調べ...
-
csvファイルの最後にeof(0x1a)...
-
ショートカットファイルそのも...
-
エクスプローラの表示項目の一...
-
レジストリの格納場所
-
Windows10でファイル検索した後...
-
先ほど解凍ソフトのIZArcをアン...
-
wordオートシェイプ内の検索
-
System32内のファイルを書き換...
-
Wordを開こうとすると『環境変...
-
【IE9】file://が使用できない
-
タスクスケジューラで指定フォ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Not kind:Folders
-
検索したファイルの場所を調べ...
-
貼り付けとショートカットの貼...
-
Win 10エクスプローラーについ...
-
Win7フォルダ名入力中にIMEの変...
-
拡張子KIHを見るソフトって有り...
-
拡張子.EXTの解凍方法
-
ショートカットファイルそのも...
-
ワードの作成日時と更新日時
-
Windows10のクイックアクセスの...
-
Windows10でファイル検索した後...
-
コマンドプロンプトでファイル...
-
レジストリの格納場所
-
自分だけファイルが見られるよ...
-
突然エクセルのデータが何ヶ月...
-
csvファイルの最後にeof(0x1a)...
-
同じ名前のファイルをひとつの...
-
ハイパーリンク設定画面の「検...
-
WindowsXPのインストールでプロ...
-
フォルダのショートカットキー...
おすすめ情報