Показать сообщение отдельно
Старый 26.10.2006, 13:53     # 4
LightImage
Junior Member
 
Регистрация: 16.10.2002
Адрес: Россия-матушка
Пол: Male
Сообщения: 96

LightImage Нимб уже пробиваетсяLightImage Нимб уже пробивается
Удаление всего 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
__________________
1 миллибайт = 1/1024 байта

Последний раз редактировалось LightImage; 26.10.2006 в 14:00.
LightImage вне форума