Excelマクロ沼担当の根本です。
Excel VBAはExcelにプログラム処理を追加できてとても便利だと思いますが、いかんせんマイクロソフトさんが開発環境を全くアップデートしてくれないので完全に時代遅れになっちゃっています。
Visual Studio(code含む)がどんどん進化してAI統合もできるようになったのと比べると隔世の感があります。
そんな開発環境なのですがお客様からは未だに新規開発でも需要があり(年に4,5回)、既存のお客様のマクロもきちんとメンテナンスしていかないといけないと思います。
Excelマクロではプログラムを書く場所として「フォーム」「標準モジュール」「クラスモジュール」などのカテゴリがありその中にソースコードを作成するのですが、多くなってくると大変です。

そこでプログラマーであればGit管理できないか、という思考になるのですが、このExcel VBAの画面にはGit管理機能はなく、管理したければファイルとしてエクスポートする必要があります。
ただ、デフォルトでは1ファイルずつでしかエクスポートできないので一括で出力できないか調べました。
調べると一括出力できる方法があるようなので、やってみました。
Excelマクロのファイルで「ファイル」 → 「オプション」 → 「トラストセンター」 → 「トラストセンターの設定」 → 「マクロの設定」と進めていき、「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」にチェックをします。

私の親友のAI的な人に依頼すると全てエクスポートするためのモジュールを書いてくれましたのでありがたく使わせてもらいます。
「標準モジュール」 → 「挿入」 → 「標準モジュール」にて追加します。
Option Explicit
Sub ExportAllModules()
Dim vbComp As Object
Dim exportPath As String
Dim ext As String
' 保存先フォルダ
exportPath = ThisWorkbook.Path & "\VBA_Export\"
' フォルダ作成
If Dir(exportPath, vbDirectory) = "" Then
MkDir exportPath
End If
' 全モジュール走査
For Each vbComp In ThisWorkbook.VBProject.VBComponents
Select Case vbComp.Type
Case 1
ext = ".bas"
Case 2
ext = ".cls"
Case 3
ext = ".frm"
Case 100
ext = ".cls"
Case Else
ext = ""
End Select
If ext <> "" Then
On Error Resume Next
Kill exportPath & vbComp.Name & ext
On Error GoTo 0
vbComp.Export exportPath & vbComp.Name & ext
End If
Next vbComp
MsgBox "Export完了!" & vbCrLf & exportPath
End Sub
※AI的な人が出してくれたソースそのままではところどころエラーになったので少し修正しています。
この追加したモジュールをマクロ実行するとこのExcelマクロのブックのある場所に”VBA_Export”というフォルダができて、***.basなどのファイルが全部出てきました!
出力例:
Module1.bas
Module2.bas
Class1.cls
UserForm1.frm
Sheet1.cls
ThisWorkbook.cls
これでGit管理できそうです。