Hallo,
natürlich geht das, allerdings muss ab Excel 2002 oder 2003 dem
Zugriff auf das VBA-Projekt per Code explizit zugestimmt werden
(Menü Extras - Makro - Sicherheit), sonst produziert der folgende
Code einen Fehler. Der Einfachheit halber werden nicht alle Zeilen
auskommentiert, sondern am Anfang der Sub Workbook_Open "Exit Sub"
eingefügt, wenn dort keins steht, anderenfalls wird es entfernt.
Der Code führt auch zu einem Fehler, wenn das Zielmodul
"DieseArbeitsmappe" umbenannt wurde (Codename) oder, z. B. in
anderssprachigen Versionen, anders heißt. Außerdem kann evtl. ein
Virenscanner Probleme machen, weil auch Makroviren auf das VBA-
Projekt zugreifen könnten.
Dim l As Long, i As Long, s As String
With ThisWorkbook.VBProject.VBComponents("DieseArbeitsmappe").CodeModule
l = .CountOfLines
For i = 1 To l
s = Trim$(.Lines(i, 1))
If s = "Private Sub Workbook_Open()" Then
If Trim$(.Lines(i + 1, 1) = "Exit Sub") Then
.DeleteLines (i + 1)
Else
.InsertLines i + 1, "Exit Sub"
End If
Exit For
End If
Next i
End With
Gruß
|