Guten Tag,
folgende Aufgabenstellung ist gegeben:
Ein Microsoft Word Dokument ist mit dem Custom UI Editor durch einen eigenen Custom Tab „Eigene“, der eine Custom Group „Spiegeln“ mit zwei Buttons „Wortweise“ und „Alles“ beinhaltet, zu erweitern.
Wird der Button „Wortweise“ angeklickt, dann wird jedes einzelne Wort im Dokument gespiegelt, klickt man „Alles“ an, wird der gesamte Text gespiegelt. Es ist dabei egal, ob ein Wort nur aus Buchstaben oder auch aus anderen Zeichen besteht. Das Ergebnis des Spiegelns soll jeweils ans Ende des Dokumentes angehängt werden (der Originaltext bleibt also davor erhalten!).
Beispiel: Der Dokumenttext ist „Dies ist Aufgabe 2 mit 8 Punkten“
Wortweise gespiegelt ergibt sich: „seiD tsi ebagfuA 2 tim 8 netknuP“
Beim Spiegeln des gesamten Textes ergibt sich: „netknuP 8 tim 2 ebagfuA tsi seiD“
Zum Spiegeln ist es nicht erlaubt, fertige VBA-Funktionen wie StrReverse zu benutzen. Stattdessen soll der benötigte Code zum Spiegeln selbst geschrieben werden!
Hinweise:
trim(...) Entfernt aus der übergebenen Zeichenfolge alle Leerzeichen vom Anfang und Ende
ActiveDocument.Content liefert den gesamten Text des Dokuments
Mein bisheriger Code zu dem ersten Button "Wortweise":
Sub Callback(control As IRibbonControl)
Dim Wort As Range
Dim WörterArray() As Variant
Dim i, s As Double
Dim TemporärerString As String
Dim Buchstabe As String
Dim GrößeArray As Double
For Each Wort In ActiveDocument.Words
If GrößeArray = 0 Then
WörterArray(0) = Trim(Wort) 'hier wird mir schon ein Fehler angezeigt
GrößeArray = GrößeArray + 1
Else
ReDim Preserve WörterArray(UBound(WörterArray) + 1)
WörterArray(UBound(WörterArray)) = Trim(Wort.Text)
End If
Next
For i = LBound(WörterArray) To UBound(WörterArray)
WörterArray(i) = Wort.Text
For s = 1 To Len(Wort.Text)
Buchstabe = Mid(Wort.Text, s, 1)
TemporärerString = Buchstabe & TemporärerString
Next
WörterArray(i) = TemporärerString
TemporärerString = ""
Next
Selection.EndKey Unit:=wdStory
For i = LBound(WörterArray) To UBound(WörterArray)
Selection.TypeText WörterArray(i) & " "
Next
End Sub
Was ist daran falsch und wie behebe ich selbiges?
PS: Für alle die mich aus dem Bereich für Excel kennen: Vielen Dank für die Hilfe, Excel läuft für meinen Bedarf mittlerweile.
|