In diesem Beitrag stellen wir eine Möglichkeit vor, um Sonderzeichen aus einer beliebigen Zeichenfolge zu entfernen.
Es handelt sich um eine Funktion, welche die definieren Sonderzeichen aus dem String entfernt, siehe folgenden VBA-Code:
{codecitation}
Function Clean_Sonderzeichen(ByVal strWert As String) As String
'** Dimensionierung der Variablen
Dim i As Integer
Const strSonderzeichen As String = "-.,:;#+ß'*?=)(/&%$§!~\}][{"
'** Durchlaufen des übergebenen Strings
For i = 1 To Len(strSonderzeichen)
strWert = Replace(strWert, Mid(strSonderzeichen, i, 1), "")
Next i
'** Bereinigter String der Funktion zurückgeben
Clean_Sonderzeichen = strWert
End Function
{/codecitation}
In der Variable strSonderzeichen werden die Sonderzeichen definiert, welche aus dem String entfernt werden sollen. Diese Liste ist beliebig erweiterbar. So könnten auch Zahlen oder Buchstaben hinzugefügt werden, welche entsprechend bereinigt werden sollen.
Mit Hilfe der For-Next-Schleife wird der übergebene String durchlaufen und durch die Funktion Replace werden alle Sonderzeichen entfernt. Sollen die Sonderzeichen beispielsweise nicht entfernt, sondern durch ein "x" ersetzt werden, so ist der Befehl wie folgt zu ändern:
strWert = Replace(strWert, Mid(strSonderzeichen, i, 1), "x")
Die folgende Prozedur zeigt den Aufruf der Funktion:
{codecitation}
Sub Bereinigen()
'** Dimensionierung der Variablen
Dim CleanWert As String
'** Sonderzeichen bereinigen
CleanWert = Clean_Sonderzeichen("(Hallo!) Wer ist da?")
'** Ausgabe des bereinigten Strings
MsgBox CleanWert
End Sub
{/codecitation}
Aus dem String "(Hallo!) Wer ist da?" werden in diesem Beispiel die rot markierten Sonderzeichen entfernt, so dass als Ergebnis "Hallo Wert ist da" ausgegeben wird.