3.4k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

ich lasser per VBA-Code eine Userform dynamisch während der Laufzeit des Programms erzeugen.
Nachdem das Programm abgelaufen ist, verschwindet die Userform allerdings nicht wieder, sondern sie bleibt im Projektexplorer und würde mit abgespeichert werden.

Jetzt meine Frage: Wie lösche ich die Userform zur Laufzeit wieder?
Erzeugt wird sie durch:
Set o_form = Thisworkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)
Löschen mit
ThisWorkbook.VBProject.VBComponents.remove(o_form)
funktioniert leider nicht!

Vielen Dank für Eure Unterstützung

2 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Unbekannter,

vielleicht so?
Code Lösche
Du könntest zum Schluss folgendes tun:
Sub VBA_Delete()
Dim objVB As Object
Dim objModul As Object
Application.StatusBar = "VBE-Elemente werden gelöscht..."
For Each objVB In ActiveWorkbook.VBProject.VBComponents
Set objModul = objVB.Codemodule
Select Case objVB.Type
Case 1 To 3
ActiveWorkbook.VBProject.VBComponents.Remove objVB
Case 100
objVB.Codemodule.DeleteLines 1, objModul.CountOfLines
End Select
Next
End Sub
von Matthias

Gruß Hajo
0 Punkte
Beantwortet von
Danke für die schnelle Hilfe!

Funktioniert einwandfrei!
...