
サブフォルダ含むフォルダ内のすべてのファイルから、指定する特定の文字列を含んだファイルの情報をリスト化する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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
サブフォルダから部分一致のエクセルファイルを検索、選択して開くマクロについて
Excel(エクセル)
-
VBA フォルダ名に特定の文字を含むフォルダを別フォルダにコピーするコードを教えて下さい
Visual Basic(VBA)
-
vbaサブフォルダーをワイルドカードで取得したい
Visual Basic(VBA)
-
-
4
excel VBA 特定の文字列を含むフォルダを開く方法
Excel(エクセル)
-
5
部分検索でフォルダ名を検索するマクロ
Excel(エクセル)
-
6
VBAで任意のフォルダ内のファイルの特定の文字列を
その他(Microsoft Office)
-
7
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
【VBA】テキストファイルから特定の文字列を抽出して、エクセルに出力する
Excel(エクセル)
-
10
excel VBA 部分一致の名前をパスに指定する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ffftpでファイル取得が0バイト...
-
Wordテンプレート一括変更での...
-
エクセルのVBAで開いている...
-
ファイル結合について
-
VB6でUTF-8ファイルの読取りを
-
エクセルのプロパティーでセキ...
-
エクセルvbaでdocuworksprinter...
-
[virtualbox] Windows XP のVHD...
-
アクセス クエリを別のファイ...
-
VBAを使ってセル内に記述してあ...
-
アクセス 自身のデータベース...
-
VBA 最新のフォルダ取得
-
読み取り専用でファイルを開きたい
-
エクセルのマクロについて教え...
-
同一フォルダ内の別ブックから...
-
shスクリプトでftp接続してファ...
-
HTMLで保存先を指定する方法に...
-
パワーポイントの文字数
-
【マクロ】フォルダにファイル...
-
Access VBA で フォルダ権限...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動かなくなってしまった古いVBA...
-
「エクセルファイルが開いてい...
-
ffftpでファイル取得が0バイト...
-
サブフォルダ含むフォルダ内の...
-
Long型で表現できないファイル...
-
タイムスタンプの更新の方法2
-
VB6でUTF-8ファイルの読取りを
-
FileDialog オブジェクトでファ...
-
vbs ブック共有を解除
-
vbaサブフォルダーをワイルドカ...
-
AccessからOLEオブジェクト型の...
-
ファイルを複数選択した時のフ...
-
webブラウザからローカルファイ...
-
EXCEL VBAを使ったファイル解析...
-
エクセルのVBAで開いている...
-
VBAでCSVファイルを読み込もう...
-
【ACCESS VBA】アクセスからデ...
-
VBAでのファイル名と更新日(作...
-
Wordのプロパティ・総ページ数...
-
「AccessViolationException」...
おすすめ情報