ich bastele gerade an einem Excel-basierten "Meldungseditor" für Automatisierungssysteme, die ich beruflich programmiere.
Der Benutzer soll seine Meldung als Fließtext eingeben können, im Quellcode des Zielsystems muss dieser Text auf max. fünf strings mit max. 55 Zeichen aufgeteilt werden.
Ich möchte nun mit einer eigenen Formel den benutzer-eingegebenen Fließtext umbrechen / zerlegen. Ich habe mir jetzt schon in VBA eine eigene Funktion erstellt, die den Ursprungstext mit "Split" und dem Leerzeichen als Trenner aufteilt. Das resultierende Array schreibe ich wieder in einzelne strings - nacheinander, bis jeweils die STring-Länge von 55 erreicht wird. Funktioniert soweit ganz gut:
Function UMBRECHEN(Text As String, Field As Long, NoOfChars As Integer) As String
Dim stTmpArray() As String, stReturn(0 To 5) As String
Dim lngPointer As Long, lngZielFeld As Long
On Error GoTo Fehlerhandler
'Eingangs-string zerlegen:
stTmpArray = Split(Text, " ")
'Ziel-Felder befüllen:
For lngPointer = LBound(stTmpArray) To UBound(stTmpArray) Step 1
If lngZielFeld NoOfChars Then lngZielFeld = lngZielFeld + 1
stReturn(lngZielFeld) = stReturn(lngZielFeld) & " " & stTmpArray(lngPointer)
stReturn(lngZielFeld) = Trim(stReturn(lngZielFeld))
Next lngPointer
UMBRECHEN = stReturn(Field - 1)
Exit Function
Fehlerhandler:
UMBRECHEN = "Fehler"
Exit Function
End Function
Da MS Word (zum Beispiel) aber auch innerhalb eines Wortes nach den jew. Rechtschreibregeln umbrechen kann - schreibt man in Word Fließtext, kann es am Zeilenende ein Wort an der richtigen Stelle trennen, ein "-" anfügen und in der nächsten Zeile weiterschreiben - habe ich mich gefragt, ob ich dieses nicht auch in meiner eigenen Funktion so nutzen kann? Office scheint ja entsprechende Funktionen "an Bord" zu haben.