HERBERS Excel-Forum - die Beispiele

Thema: Benutzerdefinierte Funktion durch Code erstellen und löschen

Home

Gruppe

VBE

Problem

Wie kann ich über VBA-Code eine benutzerdefinierte Funktion erstellen, aufrufen und wieder - mit dem Aufruf - löschen?

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.
ClassModule: Tabelle11

Private Sub cmdNewFunction_Click()
    Call FunktionAnlegen
End Sub
 

StandardModule: basMain

Sub FunktionAnlegen()
   Dim bas As Object
   Dim iStart As Integer
   With ThisWorkbook.VBProject.VBComponents("basFunction").CodeModule
      .InsertLines 3, "Function Berechnen(dValue As Double) As Double"
      .InsertLines 4, "   Berechnen = dValue * 12"
      .InsertLines 5, "End Function"
   End With
   Call FunktionAufrufen
End Sub

Sub FunktionAufrufen()
   Dim iStart As Integer, iCount As Integer
   MsgBox "Ergebnis der Funktion Berechnen:" & Berechnen(5)
   If MsgBox("Funktion löschen?", vbQuestion + vbYesNo) _
      = vbNo Then Exit Sub
   With ThisWorkbook.VBProject.VBComponents("basFunction").CodeModule
      .DeleteLines 1, .CountOfLines
   End With
End Sub

Beiträge aus dem Excel-Forum zu den Themen VBE und Prozedur

Ereignisprozedur suche Taschenrechner in VBE
Ereignisprozedur f. Multipage-Reiter Prozedur in neues Blatt/Tabelle einfügen
Makros zulassen mit VBA Prozedur Beschriftungstext einer Schaltfläche an Prozedur
Text aus Zelle als Bedingung in Prozedur Zeitgesteuerte Prozedur funktioniert nicht...
Prozedur zu groß Fehler bei Abhandlung der Prozedur
Eine große Prozedur in zwei teilen aber wie? VBA - Prozedur
Prozedur verkürzen oder teilen? VBA bringt Prozedur-Fehler
VBE Optionen setzen Name der laufenden Prozedur
Prozeduren vor dem Speichern aus Tabelle löschen Prozedurnamen auslesen
Prozedurname aus Variable Erweiterung der VBE
Prozedur fuer mehrere Arbeitsblaetter wiederholen Simple Prozedur - Wo ist der Fehler?
vbeplus Variablen in anderer Prozedur aufrufen
Prozedur bei Worksheet_Activate tut nicht Worksheet_Activate() Prozedur
Teil einer rekursiven Prozedur auslagern Ereignisprozeduren automatisiert VBE
Automatisierungsfehler Codename VBE Verwendung Addin vbeplusde
lange Bearbeitungszeit einer Prozedur Prozedur macht was sie will...
Fehler beim Kompilieren - Außerhalb Prozedur.... prozedur aufrufen
Frage Archivbeitrag - Schreibschutz Benutzerrechte Prozedur in prozedur
Prozedur bei Klick auf Grafik auslösen Fehler in Codeprozedur
Prozedur zu lang Außerhalb einer Prozedur ungültig
Prozedur bei Wechsel Hintergrundfarbe ausführen Bei erster Makroausführung öffnet sich VBE im Debu
VBE-Kontextmenü "Definition" Prozedur dauert zu lange
Objekt an Prozedur übergeben Prozedur automatisch ausführen
2 Prozeduren ausführen Listbox breite einstellen in einer prozedur
aktuellen Prozedurnamen für Fehler-Log automatisch