Start Hilfe und Support Microsoft Office EXCEL 2013 VBA: Zeichen und Ausdrücke in einem String ersetzten

EXCEL 2013 VBA: Zeichen und Ausdrücke in einem String ersetzten

E-Mail PDF

Wie kann man Zeichen und Ausdrücke durch eine VBA-Funktion in einem String ersetzten?

Aufgabenstellung

Zeichen innerhalb einer Zeichenkette/eines Strings zu ersetzten, ist eine häufige Aufgabe, die in der Programmentwicklung benötigt wird. Die Funktion, die hier vorgestellt wird, soll als Programmierbeispiel dienen und die VBA-Funktion Replace nachempfinden. Dabei ist die Länge des "Suchstrings" und des Strings, der einzufügen ist, beliebig.

So kann man die Funktion z.B. dazu benutzen, um "oe" gegen "ö" auszutauschen.

  • vAusdruck = "Der oestliche Pazifik ist des oefteren sehr stuermisch."
  • vZeichenVon = "oe"
  • vZeichenNach = "ö"
  • Ergebnis: "Der östliche Pazifik ist des öfteren sehr stuermisch."

Zur Lösung des Problems kommen die VBA-String-Funktionen Len, InStr, Mid und Left zum Einsatz, deren Funktionsweisen in diesem Beispiel zusammenwirken.

beispiel

Visual-Basic-Code

Function ZeichenErsetzen(vAusdruck As String, ByVal vZeichenVon As String, ByVal vZeichenNach As String) As String 

  Dim lPosition As Long ' Variablendefinition: In dieser Variablen wird gespeichert,
                        ' an welcher Position sich das gesuchte Zeichen/der gesuchte String
                        ' befindet
  Dim lLaenge As Long   ' Variablendefinition: Wie lang ist der String, der ersetzt werden soll, das wird
                        ' in dieser Varialben gespeichert.

  lLaenge = Len(vZeichenVon) ' Die Länge des zu ersetzenden Strings wird ermittelt.

  While InStr(vAusdruck, vZeichenVon) <> 0 ' Durchlaufde die Schleife While ... Wend so lange, bis der gesuchte
                                           ' nicht mehr enthalten ist.

    lPosition = InStr(vAusdruck, vZeichenVon) ' An welcher Stelle ist der zu ersetzende String in der Zeichenkette
                                              ' enthalten?
    vAusdruck = Left(vAusdruck, lPosition - 1) & vZeichenNach & Mid(vAusdruck, lPosition + lLaenge) ' Hier wird der
                                                                                                    ' gesuchte Aus-
                                                                                                    ' druch ersetzt.

  Wend

  ZeichenErsetzen = vAusdruck ' Das Ergebnis wird als Parameter an die Funktion ZeichenErsetzen übergeben.

End Function

Download

Hier können Sie sich das Beipiel herunterladen.


Zuletzt aktualisiert am Montag, den 07. April 2014 um 17:46 Uhr  


Machen Sie mit

Sie haben noch alte Bilder gefunden über Happerschoß und Umgebung. Es wäre schön, wenn Sie diese zur Verfügung stellen, so dass viele daran Freude haben und sich vielleicht an alten Zeiten erinnern können. Bitte melden Sie sich! Gehen Sie bitte direkt über die Kontaktseite und schreiben Sie eine Nachricht. Es geht natürlich auch mit einer Mail an Info@happerschoss.net. Natürlich sind auch alte Negative und Dias (farbig oder schwarz/weiß) willkommen, ganz gleich in welchem Format (Kleinbild, 6x6 oder auch von einer Plattenkamera), ein bearbeiteter und schöner Abzug von Ihrem Bild ist Ihnen versprochen. Danke für Ihre Mithilfe!