既に Excel で VBA コードを使用することについて話しているので、Access での VBA ソリューションを嫌う人ではないかもしれません。
テーブル (またはクエリ) の名前が [ZoneErrors] だとします。Access で次の VBA 関数のようなものを作成し、Access マクロから呼び出すことができます。
Public Function ExportZoneErrors()
Dim cdb As DAO.Database, rst As DAO.Recordset, qdf As DAO.QueryDef, _
excelFileName As String
Set cdb = CurrentDb
Set rst = cdb.OpenRecordset("SELECT DISTINCT [ZONE] FROM [ZoneErrors]", dbOpenSnapshot)
Do While Not rst.EOF
On Error Resume Next
cdb.QueryDefs.Delete "tmpErrorsForJustOneZone"
On Error GoTo 0
Set qdf = cdb.CreateQueryDef("tmpErrorsForJustOneZone", _
"SELECT * FROM [ZoneErrors] WHERE [ZONE]='" & rst!ZONE & "'")
qdf.Close
cdb.QueryDefs.Refresh
' build Excel file name (probably needs to be fancier in production)
excelFileName = "Errors for " & rst!ZONE & ".xlsx" ' e.g., "Errors for ZONE 1.xlsx"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "tmpErrorsForJustOneZone", excelFileName
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Set cdb = Nothing
End Function