ako som zmienil, napísať na to kód nie je v mojom prípade práca na 5 minút a čas budem mať najskôr až vo štvrtok (a to je otázka, či vôbec). Dá sa manuálne. Vyexportuj moduly a naimportuj ich do pôvodných súborov...
edit:
medzitým sa môžeš inšpirovať tuná:
http://social.msdn.microsoft.com/Forums/en-US/a60ab0e0-f8ce-430f-8d4f-9ca655bcd0cb/vba-create-and-add-a-macro-for-excel-programmatically
Keď som to onehdá riešil, tak som si k tomu vytvoril vzor (podotýkam, že to nie je funkčné riešenie, ale možno z toho niečo vyčítaš, na viac čas teraz bohužiaľ nemám):
Sub xx()
Dim myWrkb As Workbook
Dim strMacro As String
Dim prrf_Module As VBComponent
Set myWrkb = Workbooks.Add
' Set myWrkb = ActiveWorkbook
Set prrf_Module = myWrkb.VBProject.VBComponents(myWrkb.Worksheets(1).Name) ' ..VBComponents.Add(1) - prida kod do listu
' Set prrf_Module = myWrkb.VBProject.VBComponents(1) ' ..VBComponents.Add(1) - prida kod do thisworkbook
strMacro = "Private Sub prrf_Workbook_setPage()" & vbCr
strMacro = strMacro & "end sub"
prrf_Module.CodeModule.AddFromString strMacro
' Set prrf_Module = myWrkb.VBProject.VBComponents.Add(1) 'prida modul
'myWrkb.VBProject.VBComponents.Remove myWrkb.VBProject.VBComponents.item("Module1") 'odstrani modul
' prrf_Module.CodeModule.DeleteLines 1, prrf_Module.CodeModule.CountOfLines 'premaze cely modul
End SubAby to fungovalo, musíš nastaviť refernciu na knižnicu Microsoft Visual Basic for Applications Extensibility 5.3
V zásade: Potrebuješ načítať modul z aktuálnej verzie, to ide napr. do texťáku. Z texťáku to potom načítaš do premennej strMacro a pomocou metódy AddFromString z premennej strMacro dostaneš do pôvodného modulu, z ktorého pomocou metódy DeleteLines predtým odstrániš pôvodný kód. Je mi jasné, že popis je chaotický, ale viac v túto chvíľu fakt nepomôžem, nemám na to čas
citovat