★ 指定したフォルダ内の、すべてのサブフォルダを延々と掘っていって、『 すべてのファイルとすべてのサブフォルダ 』の基本情報を指定したシートにゲットする(吸い込む)プログラム。(再帰的な処理)
  

以降に挙げたプログラムを標準モジュールに単純にALLコピペして、
「GetFolderAndFileListMain02」のほうだけを実行します。

  

なお、このプログラムを、他のプログラムに流用したい場合は、
「GetFolderAndFileListMain02」のほうの
「o_ImpWs01.Cells.ClearContents」から「End With '↑列名(項目名)を書き込む」というところまでをカットし、
「GetFolderAndFileListSub」のほうの
2つのFor Each のループの中を、書き換えます。

ただその場合、「GetFolderAndFileListSub」のほうは、
基本、
1つ目のFor Each のループ(サブフォルダのみに対する処理)は、

For Each myFolder In FSO.GetFolder(s_folderPath).subfolders
 Call GetFolderAndFileListSub(o_ImpSheet, myFolder.Path, myCount)
Next myFolder

の3行だけがあればOKです。
下記のプログラムでは、事例として「サブフォルダの内容もゲットしたい」ということでやりましたので色々書いてありますが、
通常は、「ファイルたち」「だけ」に何かしたい場合が多いので、
その場合は、
2つ目のFor Each のループの内容だけ書き換えて(あるいは関数化して)、
1つ目のFor Each のループは、上記の3行だけがあればOKです。

  

  

★ 【ひな型化】~ サブフォルダーを掘っていくループにさせたいことと、現在のフォルダのループにさせたいことを、さらに、関数化・分離した場合のテスト(引数の、他のプロシージャへの参照渡しでのさらなる引継ぎも含め)

以下のように、分割すれば、「サブフォルダを延々と掘って処理していくプログラム」がある程度「ひな型化」できるかも?
(※↓一応動きますがチェックが甘いのでちゃんと使えるかわかりません。あくまでもテストです。↓)