Die Split-Funktion für Word 97

Eine der nützlichen Funktionen zum Teilen eines Strings in einzelne Teile und anschließend in ein Array laden ist die Split-Funktion. Leider steht diese erst ab der Version Word 2000 zur Verfügung.

Bis dahin muss man sich mit einer selbstgestrickten Lösung behelfen. Aber auch ggf. in späteren Versionen kann diese Lösung nützlich sein.

               
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
Function SplitA(ByVal strExpression As Variant, _ 
                Optional ByVal strZeichen As Variant = " ") As Variant() 

    'Splitfunktion selbst erstellt
    'gleiche Funktionalität wie die Split-Funktion ab Word 2000
    'eingeschränkt durch untergeodnete Zeichenfolgen (Limit)
    'und eingeschränkt durch die Angabe des Vergleichs (Compare)
    
   Dim strArray()  As Variant 
   Dim Zahl        As Long 
   Dim i           As Long 
   Dim strErg      As Variant 
   Dim strVar      As Variant 

    Zahl = 0 
     
    On Error Resume Next 
     
    If InStr(1, strExpression, strZeichen) <> 0 Then 
        For i = 0 To (Len(strExpression)) 
            strVar = Left(strExpression, Len(strExpression) - (Len(strExpression) - 1)) 
            If strVar <> strZeichen Then 
                strExpression = (Right(strExpression, Len(strExpression) - 1)) 
                strErg = strErg & strVar 
            Else 
                ReDim Preserve strArray(Zahl) 
                If IsEmpty(strErg) Then strErg = "" 
                strArray(Zahl) = strErg 
                Zahl = Zahl + 1 
                strErg = "" 
                strExpression = Right(strExpression, Len(strExpression) - 1) 
            End If 
        Next i 
         
        ReDim Preserve strArray(Zahl) 
        strArray(Zahl) = strErg 
         
    End If 
     
    SplitA = strArray 

End Function 


Die Funktion selbst gibt das neue Array zurück. Alle Einzelwerte sind als Element des Array verfügbar. Diese Funktion ist nur für eindimensionale Array gedacht.

Der gesamte String wird immer bis zum nächsten Vorkommen des angegebenen Zeichen aufgeteilt und in ein Element eines temoprären Arrays gespeichert. Das temporäre Array wird jedesmal wieder neu dimensioniert ohne die vorhandenen Werte zu verlieren. Zum Schluß wird das temporäre Array der Funktion selbst zugewiesen. 

Ab der Version Word 2000 könne Sie auch mit vorgegebenen Funktion arbeiten:

 

               
001
002
003
004
005
006
007
008
009
010
011
Sub Array_Split() 
   Dim Zeile As String 
   Dim strA() As String 
    
   Zeile = "Dies wird als ein Mustertext gewertet und wird in einzelne Worte zerlegt!" 
    
   strA = Split(Zeile, " ") 


End Sub 


In dem neuen Array strA sind alle Wörter des Beispielsatzes als einzelnes Element gespeichert. So hätte strA(1) den Wert "wird" usw.

 

Das Gegenstück zum Split ist der Befehl Join. Hier werden die Elemente des Array mit dem angegebenen Zeichen zwischen den Elementen als String zusammengefügt:

               
001
002
003
004
005
006
007
008
009
010
011
012
013
014
Sub Array_Split() 
   Dim Zeile As String 
   Dim NeueZeile As String 
   Dim strA() As String 
    
   Zeile = "Dies wird als ein Mustertext gewertet und wird in einzelne Worte zerlegt!" 
    
   strA = Split(Zeile, " ") 

    'die einzelen Werte des Array wieder zusammensetzen
   NeueZeile = Join(strA, " ") 

End Sub 


In Zeile 11 wird das Array strA wieder in ein String mit Leerzeichen zwischen den Elementen zusammengefügt.

 



zurück zur Übersicht Datenfelder/Array
Diese Seite zu Mister Wong hinzufügen
Diese Seite zu ecure.del.icio.us hinzufügen
Diese Seite zu webnews hinzufügen
Diese Seite zu Google Bookmarks hinzufügen
Diese Seite zu linkarena hinzufügen
Diese Seite zu Yahoo hinzufügen






Interessante Links

Grundsätzliches zu Array Grundsätzliches zu Array






Für weitere Infos bitte auf den Text klicken

http://www.prawi-officewelt.de
 .::. nach oben .::.
 
 
©2008 - 2024 www.VBA-Wordwelt.de - alle Rechte vorbehalten
 
Kontakt | Impressum
los Suche

Cookies speichern Informationen lokal auf Ihrem Rechner, ohne die Verwendung kann der Funktionsumfang beeinträchtigt werden. Weitere Informationen


Annehmen