![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
サブフォルダ含むフォルダ内のすべてのファイルから、指定する特定の文字列を含んだファイルの情報をリスト化するVBAを作成したいと考えていますが、うまく動きません。
以下のコードで、[ファイルとフォルダのリストを取得]の部分がコンパイルエラーになります。
どこに抜けがあるのかわからなくなってしまったため、どなかたお力をお貸しいただけますでしょうか。
よろしくお願いいたします。
Sub SearchKeyword()
' 検索対象ディレクトリ
Dim inputRootFolder As String
inputRootFolder = "C:\work"
' 検索キーワード
Dim keyword As String
keyword = "hoge"
' ファイル一覧の取得
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim fileList As Collection
Set fileList = New Collection
Dim folderList As Collection
Set folderList = New Collection
' ファイルとフォルダのリストを取得
Call GetFileAndFolderNameList(fso.GetFolder(inputRootFolder), fileList, folderList)
' 検索対象ファイルの正規表現
Dim reFile As RegExp
Set reFile = New RegExp
reFile.Pattern = "\.(xls|xlsx)$"
' 検索対象のbook
Dim inputBook As Workbook
' キーワード検索実行
Application.ScreenUpdating = False
Dim i As Integer
On Error Resume Next
For i = 1 To fileList.Count
' 検索対象ファイルかどうかをチェック
If reFile.Test(fileList(i)) Then
' ファイルオープン
Set inputBook = Workbooks.Open(fileList(i), ReadOnly:=True)
Dim j As Integer
For j = 1 To inputBook.Worksheets.Count
Dim result As Range
' コメントを検索。値を検索する場合はLookIn:=xlValues、数式を検索する場合はLookIn:=xlFormulasとする。
' また、部分一致で検索。完全一致で検索する場合はLookAt:=xlWhole
Set result = inputBook.Worksheets(j).Cells.Find(What:=keyword, LookIn:=xlComments, LookAt:=xlPart)
If Not result Is Nothing Then
Debug.Print (fileList(i))
inputBook.Close SaveChanges:=False
Exit For
End If
Next j
' ファイルクローズ
inputBook.Close SaveChanges:=False
End If
Next i
Application.ScreenUpdating = True
Set inputBook = Nothing
Set reFile = Nothing
Set fileList = Nothing
Set folderList = Nothing
Set fso = Nothing
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こちらですね。
【VBA】ファイルとフォルダのリストを再帰的に取得する
https://minor.hatenablog.com/entry/2015/07/26/23 …
> VBAで特定のフォルダを指定すると、その配下のファイルとフォルダの一覧を取得する関数を作成しました。
呼び出す方だけ持ってきても、肝心のその関数をコピーし忘れたのでは使えませんね。 --;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
あなたの「プチ贅沢」はなんですか?
お仕事や勉強などを頑張った自分へのご褒美としてやっている「プチ贅沢」があったら教えてください。
-
あなたの人生で一番ピンチに陥った瞬間は?
これまでの人生で今振り返ると「あの時、1番ピンチだったなぁ...」という瞬間はありますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
サブフォルダから部分一致のエクセルファイルを検索、選択して開くマクロについて
Excel(エクセル)
-
VBA フォルダ名に特定の文字を含むフォルダを別フォルダにコピーするコードを教えて下さい
Visual Basic(VBA)
-
VBA 特定文字含むファイル
Visual Basic(VBA)
-
-
4
excel VBA 特定の文字列を含むフォルダを開く方法
Excel(エクセル)
-
5
サブフォルダー内のPDFファイルを別フォルダにコピーするVBA
Excel(エクセル)
-
6
vbaサブフォルダーをワイルドカードで取得したい
Visual Basic(VBA)
-
7
大量のフォルダからひとつのフォルダにファイルをまとめたい!
その他(ソフトウェア)
-
8
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
9
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
10
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
11
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
-
12
ファイル一覧表を使ったファイルの移動
Excel(エクセル)
-
13
excel VBA 部分一致の名前をパスに指定する方法
Excel(エクセル)
-
14
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
15
サブフォルダ内のファイルを全部移動させたい。
Visual Basic(VBA)
-
16
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
17
部分検索でフォルダ名を検索するマクロ
Excel(エクセル)
-
18
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
19
VBAで任意のフォルダ内のファイルの特定の文字列を
その他(Microsoft Office)
-
20
エクセルVBAのIF文の否定の複数条件
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで任意の文字列を含むファイ...
-
複数のワークブックのVBAを変更...
-
excel マクロ PDF化の際のエラ...
-
Accessのウインドウサイズの固定
-
VB6でUTF-8ファイルの読取りを
-
FileDialog オブジェクトでファ...
-
vbsでのアスタリスクとファイル...
-
ExcelVBA 文字コード変換
-
ffftpでファイル取得が0バイト...
-
ExcelのVBAコードについて教え...
-
「エクセルファイルが開いてい...
-
ファイルのアクセス回数について
-
エクセルVBAで一つ上の階層...
-
同じファイル名 上書きしないフ...
-
ExcelブックをGoogleスプレッド...
-
エクセルで複数のコメントのサ...
-
指定した時間になったらファイ...
-
Vba初心者です。下記のコード助...
-
ブラウザ上でエクスプローラの...
-
ファイル名と同名のフォルダを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動かなくなってしまった古いVBA...
-
vbaサブフォルダーをワイルドカ...
-
サブフォルダ含むフォルダ内の...
-
VBAでフォルダ内のhtmlファイル...
-
Accessのウインドウサイズの固定
-
複数のワークブックのVBAを変更...
-
VB6でUTF-8ファイルの読取りを
-
FileDialog オブジェクトでファ...
-
「エクセルファイルが開いてい...
-
excel マクロ PDF化の際のエラ...
-
AccessからOLEオブジェクト型の...
-
Wordのプロパティ・総ページ数...
-
ffftpでファイル取得が0バイト...
-
VBからExcelファイルを開くとき...
-
webブラウザからローカルファイ...
-
VBAでCSVファイルを読み込もう...
-
コモンダイアログでフォルダを...
-
VB.net XMLの作成方法 Iniの代替
-
ExcelVBA 文字コード変換
-
EXCEL VBAを使ったファイル解析...
おすすめ情報