auxmoney - Geld leihen für das Studiumauxmoney - Geld leihen für das Studium

auxmoney - Geld leihen für den Umzugauxmoney - Geld leihen für den Umzug

Makros löschen sich selbst

Makros löschen sich selbst. Application.VBE.ActiveCodePane.CodeModule, VBProject.VBComponents
Module und Code komplett aus Arbeitsmappe entfernen
Sub bRemoveAllCode()
Dim lCount As Long
Dim objCode As Object
Dim objComponents As Object
Dim wkbBook As Workbook 'bei Word = As Document
Set wkbBook = ActiveWorkbook 'bei Word = ActiveDocument
Set objComponents = wkbBook.VBProject.VBComponents
lCount = wkbBook.VBProject.VBComponents.Count
'Zuerst alle Module löschen
For Each objCode In objComponents
If objCode.Type <> 100 Then
objComponents.Remove objCode
End If
Next objCode
lCount = wkbBook.VBProject.VBComponents.Count
'dann diesen Code löschen (der darf sich nicht in einem "Modul" befinden...)
For Each objCode In objComponents
If objCode.Type = 100 Then
objCode.CodeModule.DeleteLines 1, objCode.CodeModule.CountOfLines
End If
Next objCode
End Sub
 
Makro löscht sich selber Zeile für Zeile
Public Sub SenselessMacro()
With Application.VBE.ActiveCodePane.CodeModule
Dim StartLine As Long, Line As Long
For Line = 1 To .CountOfLines
If .Lines(Line, 1) = "Public Sub SenselessMacro()" Then
StartLine = Line
End If
If StartLine > 0 Then
If .Lines(Line, 1) = "End Sub" Then
Call .DeleteLines(StartLine, Line + 1 - StartLine)
Exit For
End If
End If
Next Line
End With
End Sub
 
Dieses Beispiel demonstriert das Löschen eines bestimmten Makros.
In diesem Fall wird das Makro mit dem Namen "Löschmich" gelöscht.
Falls nicht vorhanden wird eine entsprechende Fehlermeldung ausgegeben.
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
Sponsoren und Investoren

Sponsoren und Investoren sind jederzeit herzlich willkommen!
Wenn Sie die Information(en) auf dieser Seite interessant fanden, freuen wir uns über eine kleine Spende. Empfehlen Sie uns bitte auch in Ihren Netzwerken (z. B. Twitter, Facebook oder Google+). Herzlichen Dank!

Nach oben Sitemap
Impressum & Kontakt