Удаление всего VBA-проекта для Excel, для Word думаю будет аналогично:
Код:
Private Sub DelProject()
' Полная очистка всего VBA-проекта
' Использовать осторожно!
' В Excel 2002 для того, чтобы эта функция выполнилась, надо
' зайти в меню Сервис/Макрос/Безопасность и на вкладке
' "Надежные источники" поставить галочку "Доверять доступ к Visual Basic Project"
Dim prj, x, MeVBComponent
Const vbext_ct_StdModule As Integer = 1
Const vbext_ct_ClassModule As Integer = 2
Const vbext_ct_MSForm As Integer = 3
Const vbext_ct_ActiveXDesigner As Integer = 11
Const vbext_ct_Document As Integer = 100
Set prj = VBProject.VBComponents
For Each x In prj
Select Case x.Type
Case vbext_ct_StdModule, vbext_ct_ClassModule, _
vbext_ct_MSForm, vbext_ct_ActiveXDesigner
prj.Remove x
Case vbext_ct_Document
If x.Name = Me.CodeName Then
Set MeVBComponent = x
Else
x.CodeModule.DeleteLines 1, x.CodeModule.CountOfLines
End If
End Select
Next
If Not IsEmpty(MeVBComponent) Then
MeVBComponent.CodeModule.DeleteLines 1, MeVBComponent.CodeModule.CountOfLines
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' Пример использования функции очистки проекта
If Me.FileFormat <> xlTemplate Then
DelProject
End If
End Sub
Про _автоматическое_ удаление макросов пока подсказать не могу.
P.S. Зато можно сохранить документ в формате RFT (в нем макросов не будет), потом, если нужно, этот rtf можно снова сохранить в doc:
Код:
ThisDocument.SaveAs FileName:="F:\" + variable + ".doc", FileFormat:=wdFormatRTF