Parę miesiecy wstecz bawiłem się w "zabijanie kodu VBA".
Z tego co pamiętam to Excel (conajmniej wersja 2000) wymaga dwóch
warunków:
1. ustawienia w opcjach "ufaj dostępowi do projektu Visual Basic
Project"; co moim zdaniem i nie tylko można zrobić wyłącznie poprzez ustawienie "ręczne"
2. z poziomu edytora VBA: Tools/References ustawić odwołanie do
Microsoft Visual Basic for Applications Extensibility; można
to zrobić programowo.
A teraz Kod
<>
Sub UsunModulDokumentu()
Dim VBAModuly As VBIDE.VBComponents
Dim VBAModul As VBIDE.VBComponent
Dim Decyzja As Byte
Set VBAModuly = ThisWorkbook.VBProject.VBComponents
For Each VBAModul In VBAModuly
If VBAModul.Type = 100 Then
'lub If VBAModul.Name("ThisWorkBook")
Decyzja = MsgBox("Potwierdż usunięcie modułu " _
& VBAModul.Name & " !", _
vbCritical + vbOKCancel, "Potwierdż")
Select Case Decyzja
Case Is = vbOK
On Error Resume Next
VBAModul.CodeModule.DeleteLines 1, _
VBAModul.CodeModule.CountOfLines
Case Is = vbCancel
Exit Sub
End Select
End If
Next VBAModul
End Sub
<>
Życzę powodzenia.
r_c
napisał: slawek postów: 3
umieszczony: 7 czerwca 2005 21:47
Proszę o pomoc
Jak za pomocą Visual Basica usunąć wszystkie makra ze skoroszytu, w szczegolnosci kod z arkusza THISWORKBOOK?