Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro per Makro löschen

Forumthread: Makro per Makro löschen

Makro per Makro löschen
13.07.2007 21:02:00
Reinhard
Hallo Wissende,
in einem anderen Forum stellte jmd. folgende Frage:
Excel XP: Wie kann ich per Makro (VB-Code) ein anderes Makro in derselben oder in einer anderen Arbeitsmappe löschen?
Ich habe dann u.a. geantwortet:
google mal in Groups nach Insertlines und/oder Deletelines (wird leider in der Vba-Hilfe nicht beschrieben), dann siehst du Codes wie man überhaupt auf Moudle zugreifen kann.
Mit diesem Wissen kannst du dann die Module zeilenweise auslesen,
dabei dann z.B. nach der Zeile "Sub MeinMakro()" suchen, und dann alle folgenden Codezeilen bis "End Sub" löschen mit deletelines.
Nun stieß er, ich auch, auf den nachfolgend gelisteten Code von
http://www.schmittis-page.de/index.html?/excel/vbe/t16.htm

Bei dem Befehl Set VBE = Application.VBE.ActiveCodePane.CodeModule
kommt eine Fehlermeldung,
"Programmtechnischer Zugriff auf das Projekt ist nicht sicher" o.ä.
Dies passierte mir auch bei anderen Codes aus dem Internet.
Jetzt weiß ich nicht, fehlt da ein Verweis o.ä.? Makrosicherheit steht auf Mittel und soll auch so bleiben.
Danke ^ Gruß
Reinhard

Sub Makro_löschen()
Dim FoundFlag As Boolean
Dim Zeilen()
Makroname = "Löschmich"
Suchtext = "Sub " & Makroname & "()"
Set VBE = Application.VBE.ActiveCodePane.CodeModule
FoundFlag = False
With VBE
For x = 1 To .CountOfLines
If UCase(.Lines(x, 1)) = UCase(Suchtext) Then FoundFlag = True
If FoundFlag Then
Zähler = Zähler + 1
ReDim Preserve Zeilen(Zähler)
Zeilen(Zähler) = x
If .Lines(x, 1) = "End Sub" Then
.DeleteLines Zeilen(1), UBound(Zeilen)
Exit For
End If
End If
Next x
If Not FoundFlag Then MsgBox "Makro " & Makroname & _
" nicht gefunden !", vbCritical
End With
End Sub



Sub Makro_löschen()
Dim FoundFlag As Boolean
Dim Zeilen()
Makroname = "Löschmich"
Suchtext = "Sub " & Makroname & "()"
Set VBE = Application.VBE.ActiveCodePane.CodeModule
FoundFlag = False
With VBE
For x = 1 To .CountOfLines
If UCase(.Lines(x, 1)) = UCase(Suchtext) Then FoundFlag = True
If FoundFlag Then
Zähler = Zähler + 1
ReDim Preserve Zeilen(Zähler)
Zeilen(Zähler) = x
If .Lines(x, 1) = "End Sub" Then
.DeleteLines Zeilen(1), UBound(Zeilen)
Exit For
End If
End If
Next x
If Not FoundFlag Then MsgBox "Makro " & Makroname & _
" nicht gefunden !", vbCritical
End With
End Sub


Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro per Makro löschen
13.07.2007 21:08:28
Uduuh
Hallo,
Extras-Makro-Sicherheit-Vertrauenswürdige Quellen
Haken bei 'Zugriff auf Visual Basic-Prokekt vertrauen' rein.
Gruß aus’m Pott
Udo

AW: Makro per Makro löschen
13.07.2007 21:43:43
Reinhard
Hallo Udo,
danke dir, werde es weitergeben.
Lieben Gruß
Reinhard
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige