Thema Datum  Von Nutzer Rating
Antwort
Rot Benutzerdefinierte Funktion "Verschlüsseln"
04.08.2021 18:34:10 Alexander
NotSolved
04.08.2021 19:50:57 Alexander
NotSolved
05.08.2021 18:18:32 Gast14677
NotSolved
05.08.2021 19:00:52 Gast14677
Solved
06.08.2021 18:39:59 Alexander
NotSolved
07.08.2021 11:45:50 Gast43536
Solved
07.08.2021 14:46:05 Alexander
NotSolved
07.08.2021 15:43:00 Gast98343
NotSolved

Ansicht des Beitrags:
Von:
Alexander
Datum:
04.08.2021 18:34:10
Views:
518
Rating: Antwort:
  Ja
Thema:
Benutzerdefinierte Funktion "Verschlüsseln"

Guten Tag,

folgende Aufgabenstellung:

Ein Microsoft Word Dokument ist mit dem Custom UI Editor durch einen eigenen Custom Tab „Verschlüsselung“, der eine Custom Group „Verfahren“ mit zwei Buttons „Rot-13“ und „Invertierung“ beinhaltet, zu erweitern.
Wird einer der beiden Buttons angeklickt, so wird jeweils der gesamte Text des Dokumentes mit dem jeweiligen Verfahren verschlüsselt (siehe Hinweise). In die Verschlüsselung gehen dabei nur große und kleine Buchstaben ein. Alle anderen Zeichen wie Ziffern, Umlaute, Sonderzeichen und Leerzeichen bleiben unverändert erhalten.
Der erstellte verschlüsselte Text soll jeweils den bisherigen Text des Dokumentes vollständig ersetzen.

Beispiel: Der Dokumenttext ist „Toller Testtext mit 5 Wörtern“

Nach der Rot-13-Verschlüsselung ergibt sich: „Gbyyre Grfggrkg zvg 5 Jöegrea“
Nach der Invertierungs-Verschlüsselung ergibt sich: „Gloovi Gvhggvcg nrg 5 Döigvim“

Hinweise:

Beim Rot-13-Verfahren wird jeder Buchstabe um 13 Stellen im Alphabet verschoben. Kommt dabei ein Zeichen > Z heraus, fängt man wieder beim A an. Aus einem A wird so ein N, aus einem B ein O, aus einem M ein Z und aus einem N ein A usw. Entsprechend wird aus einem a ein n, aus einem b ein o usw.
Da das Alphabet 26 (also 2x 13) Buchstaben hat, stellt eine doppelte Rot-13-Verschlüsselung den Originaltext wieder her.
Beim Invertierungs-Verfahren wird aus einem A ein Z, aus einem B ein Y, aus einem C ein X usw. Entsprechend wird aus einem X ein C, aus dem Y ein B und aus dem Z ein A (genauso auch für Kleinbuchstaben).

Auch hier stellt eine zweifache Anwendung somit den Originaltext wieder her.
Die VBA-Funktion asc liefert zu einem Buchstaben den zugehörigen Zahlwert, auch ASCII-Code genannt. Großbuchstaben haben ASCII-Codes von 65 (A) bis 90 (Z), Kleinbuchstaben gehen von 97 (a) bis 122 (z).
Mit der VBA-Funktion chr kann ein ASCII-Code in das zugehörige Zeichen umgewandelt werden. Ein chr(65) liefert somit z.B. ein ‚A‘.

'Callback for customButton onAction
Sub Callback(control As IRibbonControl)

Dim Wort As Range
Dim s As Long

For Each Wort In ActiveDocument.Words
    For s = 1 To Len(Wort)
            If Asc(Mid(Wort, s, 1)) >= 65 And Asc(Mid(Wort, s, 1)) <= 90 Then
                If Asc(Mid(Wort, s, 1)) <= 77 Then
                    'Replace?
                    'Wort=Replace(Wort,Mid(Wort, s, 1),Chr(Asc(Mid(Wort, s, 1)+13)))
                Else
                    'Wenn Wert über 77 -> Wert+13-90+64
                    'Replace?
                End If
            ElseIf Asc(Mid(Wort, s, 1)) >= 97 And Asc(Mid(Wort, s, 1)) <= 122 Then
                If Asc(Mid(Wort, s, 1)) <= 109 Then
                    'Replace?
                Else
                    'Wenn Wert über 109 -> Wert+13-122+96
                    'Replace?
                End If
            End If
    Next
Next


End Sub

Unter dem ersten "Replace?" habe ich mal dazugeschrieben was ich an der Stelle so vorhatte. Es funktioniert so nicht (überrascht hier wahrscheinlich niemanden). Was ist an meinem Versuch falsch und wie könnte ich das Vorhaben an den besagten Stellen umsetzen?

Vielen Dank im Voraus!


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 "Verschlüsseln"
04.08.2021 18:34:10 Alexander
NotSolved
04.08.2021 19:50:57 Alexander
NotSolved
05.08.2021 18:18:32 Gast14677
NotSolved
05.08.2021 19:00:52 Gast14677
Solved
06.08.2021 18:39:59 Alexander
NotSolved
07.08.2021 11:45:50 Gast43536
Solved
07.08.2021 14:46:05 Alexander
NotSolved
07.08.2021 15:43:00 Gast98343
NotSolved