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

  
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"