Thema Datum  Von Nutzer Rating
Antwort
Rot Benutzerdefinierte Funktion "Spiegeln"
29.07.2021 18:36:31 Alexander
NotSolved
30.07.2021 01:48:38 Gast49632
Solved
30.07.2021 02:23:40 Gast16871
NotSolved
30.07.2021 02:39:33 Gast49632
NotSolved
03.08.2021 18:51:14 Alexander
NotSolved

Ansicht des Beitrags:
Von:
Alexander
Datum:
29.07.2021 18:36:31
Views:
527
Rating: Antwort:
  Ja
Thema:
Benutzerdefinierte Funktion "Spiegeln"

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.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Benutzerdefinierte Funktion "Spiegeln"
29.07.2021 18:36:31 Alexander
NotSolved
30.07.2021 01:48:38 Gast49632
Solved
30.07.2021 02:23:40 Gast16871
NotSolved
30.07.2021 02:39:33 Gast49632
NotSolved
03.08.2021 18:51:14 Alexander
NotSolved