Tipp 8.13 - Leerzeichen entfernen

Wie kann ich aus einem String die überflüssigen Leerzeichen entfernen?

Mit der InStr-Funktion in Kombination mit der Replace-Funktion können Sie relativ einfach doppelte Leerzeichen in einem String aufspüren und durch ein einzelnes Leerzeichen ersetzen. Eingebettet in eine Schleife wird das Ganze so lange wiederholt, bis kein doppeltes Leerzeichen mehr gefunden wird. Als Rückgabe erhalten Sie einen bereinigten Text. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.

Beispiel:

' String-Manipulation
Public Function DelSpaces(ByVal psText As String) As String
  '// =====================================================
  '// Methode   | Löscht alle überflüssigen Leerzeichen
  '// -----------------------------------------------------
  '// Parameter | psText - Zu überprüfender Text
  '// -----------------------------------------------------
  '// Rückgabe  | String - bereinigter Text
  '// -----------------------------------------------------
  '// Erstellt  | Stefan Kulpa
  '//           | EDV Innovation & Consulting - Dormagen
  '// -----------------------------------------------------
  '// Beispielaufruf:
  '// ?DelSpaces("  Hier steht  eine     Testzeile  ")
  '// =====================================================
 
  Const csLEER As String = " "
  Const csDOUBLE As String = "  "
 
  Dim sTmp As String
 
  On Error GoTo DelSpaces_Error
 
  If Len(psText) > 0 Then
    sTmp = Trim$(psText)
    While InStr(1, sTmp, csDOUBLE) > 0
      sTmp = Replace(sTmp, csDOUBLE, csLEER)
    Wend
  End If
 
  DelSpaces = sTmp
 
DelSpaces_Exit:
  On Error GoTo 0
  Exit Function
 
DelSpaces_Error:
  MsgBox "Fehler " & Err.Number & ": " & _
         Err.Description, vbCritical, _
         "modTipps.DelSpaces"
  Resume DelSpaces_Exit
 
End Function