Excel VBA bietet zahlreiche integrierte Funktionen. Einige dieser Excel-VBA- Funktionen verwenden Argumente, andere nicht.
Excel VBA-Funktionsbeispiele
Hier finden Sie einige Beispiele für die Verwendung von VBA-Funktionen im Code. In vielen dieser Beispiele zeigt die MsgBox-Funktion einen Wert in einem Meldungsfeld an. Ja, MsgBox ist eine VBA-Funktion – eine eher ungewöhnliche, aber dennoch eine Funktion. Diese nützliche Funktion zeigt eine Meldung in einem Dialogfeld an und gibt auch einen Wert zurück.
Anzeigen von Systemdatum oder -uhrzeit
Das erste Beispiel verwendet die Datumsfunktion von VBA, um das aktuelle Systemdatum in einem Meldungsfeld anzuzeigen:
Unter ShowDate()
MsgBox "Heute ist: " & Datum
End Sub
Beachten Sie, dass die Date-Funktion kein Argument verwendet. Im Gegensatz zu Arbeitsblattfunktionen erfordert eine VBA-Funktion ohne Argument keine leeren Klammern. Wenn Sie einen leeren Satz Klammern eingeben, entfernt die VBE diese sogar umgehend.
Um die Systemzeit abzurufen, verwenden Sie die Zeitfunktion. Und wenn Sie alles wollen, verwenden Sie die Now-Funktion, um sowohl das Datum als auch die Uhrzeit zurückzugeben.
Suche nach einer Stringlänge
Das folgende Verfahren verwendet die VBA Len-Funktion, die die Länge einer Textzeichenfolge zurückgibt. Die Funktion Len verwendet ein Argument: die Zeichenfolge. Wenn Sie dieses Verfahren ausführen, zeigt das Meldungsfeld Ihren Namen und die Anzahl der Zeichen in Ihrem Namen an.
Unter GetLength()
Dim MyName As String
Dim StringLength As Long
MyName = Application.UserName
StringLength = Len(MyName)
MsgBox MyName & " hat " & StringLength & " Zeichen."
End Sub

Berechnung der Länge Ihres Namens.
Excel verfügt auch über eine LEN-Funktion, die Sie in Ihren Arbeitsblattformeln verwenden können. Die Excel-Version und die VBA-Funktion funktionieren gleich.
Anzeige des Monatsnamens
Das folgende Verfahren verwendet die Funktion MonthName, die den Namen eines Monats zurückgibt. MonthName verwendet ein Argument: eine ganze Zahl zwischen 1 und 12.
Sub ShowMonthName()
Diesen Monat so lange dimmen
DieserMonat = Monat(Datum)
MsgBox MonthName(ThisMonth)
End Sub
Diese Prozedur verwendet die Month-Funktion, um den aktuellen Monat (als Wert) abzurufen, und dieser Wert wird der ThisMonth-Variablen zugewiesen. Die Funktion MonthName konvertiert dann den Wert in Text. Wenn Sie diese Prozedur also im April ausführen, zeigt das Meldungsfeld den Text April an.
Tatsächlich ist die Variable ThisMonth nicht erforderlich. Sie können den gleichen Effekt mit diesem Ausdruck erzielen, der drei VBA-Funktionen verwendet:
Monatsname(Monat(Datum))
Hier wird das aktuelle Datum als Argument an die Funktion Month übergeben, die einen Wert zurückgibt, der als Argument an die Funktion MonthName übergeben wird.
Bestimmen einer Dateigröße
Die folgende Sub-Prozedur zeigt die Größe der ausführbaren Excel-Datei in Byte an. Es findet diesen Wert mithilfe der FileLen-Funktion:
Unter GetFileSize()
Dim TheFile As String
TheFile = "C:\Programme (x86)\Microsoft Office\root\Office16\EXCEL.EXE"
MsgBox FileLen(TheFile)
End Sub
Beachten Sie, dass diese Routine hart Codes der Dateiname (dh, heißt es ausdrücklich , den Pfad). Das ist keine gute Idee. Die Datei befindet sich möglicherweise nicht auf Laufwerk C, oder der Excel-Ordner hat möglicherweise einen anderen Namen. Die folgende Aussage zeigt einen besseren Ansatz:
TheFile = Application.Path & "\EXCEL.EXE"
Path ist eine Eigenschaft des Application-Objekts. Es gibt einfach den Namen des Ordners zurück, in dem die Anwendung (also Excel) installiert ist (ohne einen nachgestellten umgekehrten Schrägstrich).
Identifizieren des Typs eines ausgewählten Objekts
Das folgende Verfahren verwendet die TypeName-Funktion, die den Typ der Auswahl auf dem Arbeitsblatt (als Zeichenfolge) zurückgibt:
Unter ShowSelectionType()
Dim SelType As String
SelType = TypeName(Auswahl)
MsgBox SelType
End Sub
Die Auswahl kann ein Bereich, ein Bild, ein Rechteck, ein Diagrammbereich oder jeder andere auswählbare Objekttyp sein.
Die TypeName-Funktion ist sehr vielseitig. Sie können diese Funktion auch verwenden, um den Datentyp einer Variablen zu bestimmen.
Excel VBA-Funktionen, die mehr können, als nur einen Wert zurückzugeben
Einige VBA-Funktionen gehen weit über den Call of Duty hinaus. Anstatt einfach einen Wert zurückzugeben, haben diese Funktionen einige nützliche Nebeneffekte.
VBA-Funktionen mit nützlichen Nebenvorteilen
Funktion |
Was es macht |
MsgBox |
Zeigt ein praktisches Dialogfeld mit einer Nachricht und Schaltflächen an. Die Funktion gibt einen Code zurück, der identifiziert, auf welche Schaltfläche der Benutzer klickt. |
Eingabefeld |
Displays a simple dialog box that asks the user for some input. The function returns whatever the user enters in the dialog box. |
Shell |
Executes another program. The function returns the task ID (a unique identifier) of the other program (or an error if the function can’t start the other program). |
Discovering Excel VBA functions
How do you find out which functions VBA provides? Good question. The best source is the Excel VBA system. Another way is to type VBA, followed by a period. You get a list of items. Those with a green icon are functions. If this feature isn’t working, choose VBE’s Tools → Options, click the Editor tab, and place a check next to Auto List Members.

A way to display a list of VBA functions.
There are over 140 different functions available in VBA. Some are so specialized and obscure, you’ll never need them. Others, however, are quite useful for many applications.
Excel VBA’s Most Useful Built-In Functions
Function |
What It Does |
Abs |
Returns a number’s absolute value |
Array |
Returns a variant containing an array |
Choose |
Returns a value from a list of items |
Chr |
Converts an ANSI value to a string |
CurDir |
Returns the current path |
Date |
Returns the current system date |
DateAdd |
Returns a date to which a specified time interval has been added — for example, one month from a particular date |
DateDiff |
Returns an integer showing the number of specified time intervals between two dates — for example, the number of months between now and your birthday |
DatePart |
Returns an integer containing the specified part of a given date — for example, a date’s day of the year |
DateSerial |
Converts a date to a serial number |
DateValue |
Converts a string to a date |
Day |
Returns the day of the month from a date value |
Dir |
Returns the name of a file or directory that matches a pattern |
Err |
Returns the error number of an error condition |
Error |
Returns the error message that corresponds to an error number |
Exp |
Returns the base of the natural logarithm (e) raised to a power |
FileLen |
Returns the number of bytes in a file |
Fix |
Returns a number’s integer portion |
Format |
Displays an expression in a particular format |
GetSetting |
Returns a value from the Windows registry |
Hour |
Returns the hour portion of a time |
InputBox |
Displays a box to prompt a user for input |
InStr |
Returns the position of a string within another string (counting from the start) |
InStrRev |
Returns the position of a string within another string (counting from the end) |
Int |
Returns the integer portion of a number |
IsArray |
Gibt True zurück, wenn eine Variable ein Array ist |
IsDate |
Gibt True zurück, wenn ein Ausdruck ein Datum ist |
Ist leer |
Gibt True zurück, wenn eine Variable nicht initialisiert wurde |
IstFehler |
Gibt True zurück, wenn ein Ausdruck ein Fehlerwert ist |
Wird vermisst |
Gibt True zurück, wenn kein optionales Argument an eine Prozedur übergeben wurde |
Ist Null |
Gibt True zurück, wenn ein Ausdruck keine gültigen Daten enthält |
IstNumerisch |
Gibt True zurück, wenn ein Ausdruck als Zahl ausgewertet werden kann |
LBound |
Gibt den kleinsten Index für eine Dimension eines Arrays zurück |
LCase |
Gibt eine in Kleinbuchstaben umgewandelte Zeichenfolge zurück |
Links |
Gibt eine angegebene Anzahl von Zeichen links von einer Zeichenfolge zurück |
Len |
Gibt die Anzahl der Zeichen in einer Zeichenfolge zurück |
Mitte |
Gibt eine angegebene Anzahl von Zeichen aus einer Zeichenfolge zurück |
Minute |
Gibt den Minutenanteil eines Zeitwerts zurück |
Monat |
Gibt den Monat aus einem Datumswert zurück |
MsgBox |
Zeigt ein Meldungsfeld an und gibt (optional) einen Wert zurück |
Jetzt |
Gibt das aktuelle Systemdatum und die aktuelle Uhrzeit zurück |
Ersetzen |
Ersetzt einen Teilstring in einem String durch einen anderen Teilstring |
RGB |
Gibt einen numerischen RGB-Wert zurück, der eine Farbe darstellt |
Richtig |
Gibt eine angegebene Anzahl von Zeichen rechts von einer Zeichenfolge zurück |
Rnd |
Gibt eine Zufallszahl zwischen 0 und 1 zurück |
Zweite |
Gibt den Sekundenteil eines Zeitwerts zurück |
Hülse |
Führt ein ausführbares Programm aus |
Raum |
Gibt eine Zeichenfolge mit einer angegebenen Anzahl von Leerzeichen zurück |
Teilt |
Teilt eine Zeichenfolge in Teile mit einem Trennzeichen |
Quadrat |
Gibt die Quadratwurzel einer Zahl zurück |
Zeichenfolge |
Gibt ein sich wiederholendes Zeichen oder eine Zeichenfolge zurück |
Zeit |
Gibt die aktuelle Systemzeit zurück |
Timer |
Gibt die Anzahl der Sekunden seit Mitternacht zurück |
TimeSerial |
Gibt die Uhrzeit für eine bestimmte Stunde, Minute und Sekunde zurück |
Zeitwert |
Konvertiert einen String in eine Zeitseriennummer |
Trimmen |
Gibt eine Zeichenfolge ohne führende oder nachgestellte Leerzeichen zurück |
Modellname |
Gibt einen String zurück, der den Datentyp einer Variablen beschreibt |
UBound |
Gibt den größten verfügbaren Index für die Dimension eines Arrays zurück |
UCase |
Wandelt einen String in Großbuchstaben um |
Val |
Gibt die in einem String enthaltenen Zahlen zurück |
Wochentag |
Gibt eine Zahl zurück, die einen Wochentag darstellt |
Jahr |
Gibt das Jahr aus einem Datumswert zurück |
Um vollständige Details zu einer bestimmten Excel-VBA-Funktion zu erhalten , geben Sie den Funktionsnamen in ein VBA-Modul ein, bewegen Sie den Cursor an eine beliebige Stelle im Text und drücken Sie F1.