★ Access2000VBA・Excel2000VBA独学~指定したフォルダの、すべてのサブフォルダも含めて、すべてのExcelファイル(xlsm拡張子)のすべてのモジュールの内容を一括書き出しするプログラム(32bit版のExcelファイルのみ有効。Accessなどはダメ。64bit版もダメ。Wordは不明。)

  

※関連記事
すべてのファイルを再帰的に順に編集
すべてのファイルのモジュールの内容を一括書き出し
すべてのファイルとフォルダの基本情報の吸い込み
処理速度がOpenメソッド利用時の2倍?すべてのExcelファイルのすべてのシート名をファイルを開かずにゲット

  
※2022/12/06 追記

★かなり重要な注意事項
ここでは「Dir」を使っていますが、
「Dir関数は認識できない文字(文字コード?)があるらしく、また、最悪なことに、プログラムの書き方によっては、”エラーが出てほしいところで出ない”」
という機能不足や不都合があるようです。
システムとしては致命的になってしまうので、基本的には「使わないほうが無難」なようです。

どうしても使いたいなら
『「確実にパソコン内」だけで付けたファイル名しか「絶対に・100%」ありえない 』、
という前提の場合しか役に立たないようです。

また、Dir関数を使うほうが速度は4、5倍は速いようですが、一部のファイル名を認識できずにエラーになるようでは、全てのファイルやフォルダを拾えません。「4、5倍は速い」なんてものは何の意味もない、ということになります。

そのあたりについて詳しく書いてあるWebサイトをご紹介します。
mhtmlなどで保存しておくことをおすすめします。
VBAでファイルリストを高速に取得する関数を自作する part1
VBAでファイルリストを高速に取得する関数を自作する part2
VBAでファイルリストを高速に取得する関数を自作する part3
VBAでファイルリストを高速に取得する関数を自作する part4

↑「ファイル・フォルダリストをゲットするだけ」というシーンでしか使えないかもしれませんが、Dir関数を使うよりも何倍も速いプログラムコードも紹介されています。
もちろん、文字コードの問題もありません。
ほんと、mhtmlなどで保存しておくことをおすすめします。
  

  
https://xxxx7.com/2016/06/06/100040

https://itlogs.net/vba-source-export/ を参考にして
少し作り変えしたものです。

APIがあるので、「32bit版」のExcelじゃないと動きません。
また、「FileDialog」オブジェクトの関係で、バージョンが(多分)2007以降じゃないと動きません。(2000などだと変数宣言の箇所でエラーになります。)

事前に、以下の2つの設定が必要です。
(01)VBEの「ツール→参照設定」にて、「Microsoft Scriptiong Runtime」の参照設定。
チェックを入れてOKします。

(02)Excelの「オプション」で、「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」の設定をONにする。
(2019の場合) →ファイル →オプション →トラストセンター →「トラストセンターの設定」ボタン →マクロの設定 →「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」にチェックを入れて、OK→OKする。

実際に実行するプログラムは、「ModuleExportAllSubFolder0001()」というプログラム「だけ」です。
フォルダの指定をダイアログにて求められるので、フォルダを選択してOKするとプログラムが動き出します。
xlsmファイルと同じ階層に、txt形式でプログラムが書き出されます。
すべてのサブフォルダが処理されます。
最後に、「おわり」と出て、処理したフォルダが開きます。

※バージョン2003以前で動かしたい場合は、以下の4行をコメントアウトして、
Dim o_AnswFDialg As FileDialog
Set o_AnswFDialg = Application.FileDialog(msoFileDialogFolderPicker)
If Not o_AnswFDialg.Show Then Exit Sub
s_FoldPath = o_AnswFDialg.SelectedItems(1)
以下の1行を復活させて使うとひとまずのテストはできます。
s_FoldPath = "D:\1\1"