Excel VBA - Funktionen
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Eigene Funktionen (Benutzerdefinierte)
- Alle benutzerdefinierte Funktionen sind mit Funktionsassistent verfügbar. Alle benutzerdefinierten Funktionen stehen unter der Ruprik "Benutzerdefiniert".
- trägt man "=<namen>", so sind alle eigene Funktionen zugänglich
Funktionen mit Parametern
Function FunktionMitParameter(r As String) FunktionMitParameter = r + 1 End Function
In Excel Eingabe in einer Zelle
=FunktionMitParameter(4) 'Resultat = 5
Funktionen mit mehreren Parametern
Function FunktionMitMehrerenParameter(r As String, s As String) FunktionMitParameter = r + 1 + s End Function
In Excel Eingabe in einer Zelle
=FunktionMitParameter(1;2) 'Resultat = 4
Beispiele
Ersetzen Wert
Eine Funktion mit Übergabe einer Inputvariablen.
'Held S. 216. Function Benotung(r) Application.Volatile. 'Aktualisiert den Outputwert automatisch Select Case r.Value Case Is = 1: Benotung = "Sehr gut" Case Is = 2: Benotung = "gut" Case Is = 3: Benotung = "Befriedigend" Case Is = 4: Benotung = "Ausreichend" End Select End Function
Nun in Excel in Zelle A1 die Zahl 1 eingeben. Nun strg gedrückt halten und die Ausfüllkästchen bis in Zelle A6 ziehen. Nun einen Doppelklick auf dsa Ausfüllkästchen B1, um die Funktion nach unten auszufüllen.
Funktion Arbeitsmappe (Datei)
Function Arbeitsmappe() Arbeitsmappe = ActiveWorkbook.Name 'Aktuelle Datei End Function
Unter "Benutzerdefinierte Funktionen" steht nun die Funktion "Arbeitsmappe" zur Verfügung.
In eine Zelle in Excel kann der Befehl geschrieben werden
=Arbeitsmappe()
Funktion Aktives Tabellenblatt ermitteln
Function TabellenName() As String TabellenName = Application.Caller.Parent.Name End Function
In eine Zelle kann der Befehl geschrieben werden
=TabellenName()
Funktion Aktuellen Bearbeiter identifizieren
Es kann interessant sein, wenn eine Excel-Datei gesperrt ist.
Function Anwender() Anwender = Application.UserName End Function
Eingebaute Funktionen
Aktives Tabellenblatt
Arbeitsmappe = ActiveWorkbook.Name
Zeit & Datum
Dim Datum as Date Datum = date
'Ermittlung von Tag, Monat und Jahr, sowie Sekunde, Minute und Stunde aus dem aktuellen Tag und Uhrzeit (Now) Dim MonatNr as Integer Dim TagNr as Integer Dim JahrNr as Integer Dim StundeNr as Integer Dim MinuteNr as Integer Dim SekundeNr as Integer MonatNr = Month(Now()) TagNr = Day(Now()) JahrNr = Year(Now()) StundeNr = Hour(Now()) MinuteNr = Minute(Now()) SekundeNr = Second(Now())
'Listing 1.10: Das aktuelle Tagesdatum unterschiedlich darstellen 'Held, S. 54 Sub DatumsformateBearbeiten() DatAngabe = Now Debug.Print FormatDateTime(DatAngabe, vbGeneralDate) Debug.Print FormatDateTime(DatAngabe, vbLongDate) Debug.Print FormatDateTime(DatAngabe, vbShortDate) Debug.Print FormatDateTime(DatAngabe, vbLongTime) Debug.Print FormatDateTime(DatAngabe, vbShortTime) End Sub