1 Zuletzt bearbeitet von rc.otto (19.06.2016 18:51:33)

Thema: Backslash zur autom. Nummerierung mittels Befehl in Word übertragen

Ich weiß nicht, ob ich in diesem Unterforum richtig bin, bitte anderenfalls entsprechend verschieben.

Ich möchte gerne in Word die Anlagen automatisch nummerieren. Dazu gibt es eine entsprechende  Feldfunktion ({SEQ Anlagen\* Arabic \* MERGEFORMAT}).
Diese lässt sich in Word einfach eingeben: Mit "STRG F9" wird eine leere Feldfunktion eingegeben, dann kann "SEQ Anlagen\* Arabic \* MERGEFORMAT" eingegeben werden und schließlich muss das dann nur noch geschlossen werden (am besten wohl mit F9). Dann noch einmal nach rechts und ich bin am Ende des Dokumentes. Deshalb habe ich mir einen "Schritt für Schritt-Befehl" im Befehlseditor gebaut, der wie folgt gestaltet ist:

&Eingabetaste drücken (fügt einen Zeilenumbruch ein)
&STRG +E drücken (zentriert den Text)
&STRG + Umschalttaste + F drücken (ab hier wird der Text fett)
"Anlage "  eingeben (hier ist schon einmal der Begriff „Anlage“, es fehlt dann nur noch die Anlagennummer)
&STRG + F9 drücken (hier wird eine Feldfunktion eingefügt. Diese ist noch leer, sodass im nächsten Schritt der Inhalt einzufügen ist)
Tasten "SEQ Anlagen\* Arabic \* MERGEFORMAT" senden
&F9 drücken (aktualisiert die Feldfunktion und zeigt anstelle der Funktion das Ergebnis, also die laufende Anlagennummer, an)
&Ende drücken (geht an das Ende der Zeile)
&Eingabetaste drücken (fügt eine neue Zeile ein)
& Alt + 0 drücken (stellt bei mir die Formatierung „Absatz Standard“ ein)

Leider funktioniert es nicht. Die Feldfunktion wird noch eingefügt, aber anstelle von "SEQ Anlagen\* Arabic \* MERGEFORMAT" fügt Dragon "SEQ Anlagenß* Arabic ß* MERGEFORMAT" in die Feldfunktion ein – die so natürlich nicht funktionieren kann.

Das Zeichen „ß“ wird also anstelle des „\" eingefügt.

Fällt vielleicht jemandem ein, wie ich Dragon beibringen kann, das Zeichen „\“ einfügen kann?

BTW: Ich habe diesen Text mit Dragon diktiert. Wenn ich mit Dragon in Firefox das Wort "Backslash" diktiere, überträgt Dragon in den Firefox nur das Zeichen „ß“. In Word wird hingegen das Zeichen "\" dargestellt. Ob das die gleiche Ursache hat?

Schon jetzt herzlichen Dank für jede Hilfe.

Verwendetes System: DPI 14 unter W10.

Nachtrag: Über einen Umweg ist es mir doch noch gelungen, wenn auch nicht elegant.

Ich habe in Word "SEQ Anlagen\* Arabic \* MERGEFORMAT" als Autotext definiert, der "ANummer" automatisch ersetzt. Der Befehl muss also nur noch "ANummer" an Word übertragen und Word ersetzt das in der Feldfunktion automatisch durch "SEQ Anlagen\* Arabic \* MERGEFORMAT". So funktioniert es dann bei mir:

&Eingabetaste drücken (fügt einen Zeilenumbruch ein)
&STRG +E drücken (zentriert den Text)
&STRG + Umschalttaste + F drücken (ab hier wird der Text fett)
"Anlage "  eingeben (hier ist schon einmal der Begriff „Anlage“, es fehlt dann nur noch die Anlagennummer)
&STRG + F9 drücken (hier wird eine Feldfunktion eingefügt. Diese ist noch leer, sodass im nächsten Schritt der Inhalt einzufügen ist)
"ANummer " eingeben (das Leerzeichen ist wichtig, damit die Autokorrektur greift)
&Rücktaste drücken (beseitigt das Leerzeichen)
&F9 drücken (aktualisiert die Feldfunktion und zeigt anstelle der Funktion das Ergebnis, also die laufende Anlagennummer, an)
&Ende drücken (geht an das Ende der Zeile)
&Eingabetaste drücken (fügt eine neue Zeile ein)
& Alt + 0 drücken (stellt bei mir die Formatierung „Absatz Standard“ ein)

Das ist aber immer noch recht behäbig. Fällt vielleicht jemandem eine elegantere Lösung ein?

Für die Juristen: Der Befehl heißt bei mir "Anlage nummeriert". Daneben gibt es noch "Anlage AST nummeriert" etc. Die Befehle sind identisch und unterscheiden sich nur dadurch, dass anstatt von "Anlage " dann "Anlage AST ", "Anlage B " oder "Anlage K " im Befehlseditor eingetragen ist. Wenn ich dann Anlagen von oben nach unten schiebe, muss ich nur anschließend das gesamte Dokument markieren, auf F9 drücken und schon stimmt die Anlagennummerierung wieder.

2

Re: Backslash zur autom. Nummerierung mittels Befehl in Word übertragen

rc.otto schrieb:

Ich habe diesen Text mit Dragon diktiert. Wenn ich mit Dragon in Firefox das Wort "Backslash" diktiere, überträgt Dragon in den Firefox nur das Zeichen „ß“. In Word wird hingegen das Zeichen "\" dargestellt. Ob das die gleiche Ursache hat?

Es dürfte zumindest eine ähnliche Ursache haben. - Momentan kann ich nur raten, aber versuchen Sie es mal mit einem doppelten Backslash:

\\

DPI 15 (15.00.000.076) auf Windows 8.1 (64-bit)
SpeechMike Premium (LFH3500) mit Philips Device Control Center (3.0)
Intel i7 2600 QuadCore - 3.4 GHz - 8 MB L3-Cache - 6 GB RAM

3

Re: Backslash zur autom. Nummerierung mittels Befehl in Word übertragen

Haben Sie herzlichen Dank für Ihre schnelle Reaktion! Auch mit "\\" wird es nicht besser, immerhin wird dann "ßß" angezeigt. Interessant ist, dass das Zeichen richtig übertragen wird, wenn ich das als Autotext von Dragon übertragen lasse. Dabei nützt es mir nur nicht allzu viel.
Immerhin, mit dem oben im Nachtrag genannten Workaround funktioniert es nun bei mir.

Nochmals herzlichen Dank!

4

Re: Backslash zur autom. Nummerierung mittels Befehl in Word übertragen

Ihren Schritt-für-Schritt Befehl (in der Ursprungsversion) habe ich mal "Schritt für Schritt" und Wort für Wort in ein Advanced Script umgewandelt, was von Natur aus nicht so behäbig ist und bei dem man die Zeichen auf der sogenannten "3. Tastatur" zumindest über den ASCII-Code einfügen kann.

Legen Sie ein neues Skript an, Typ "Skripterstellung", und kopieren Sie den unten stehenden Text entsprechend dort hinein:

Sub Main
    ' &Eingabetaste drücken (fügt einen Zeilenumbruch ein)
    SendKeys "~"
    ' &STRG +E drücken (zentriert den Text)
    SendKeys "^e"
    ' &STRG + Umschalttaste + F drücken (ab hier wird der Text fett)
    SendKeys "^+f"
    ' "Anlage "  eingeben
    SendKeys "Anlage "
    ' &STRG + F9 drücken (hier wird eine Feldfunktion eingefügt)
    SendKeys "^{F9}"
    ' Tasten "SEQ Anlagen\* Arabic \* MERGEFORMAT" senden
    SendKeys "SEQ Anlagen" & Chr(92) & "* Arabic " & Chr(92) & "* MERGEFORMAT"
    ' &F9 drücken (aktualisiert die Feldfunktion)
    SendKeys "{F9}"
    ' &Ende drücken (geht an das Ende der Zeile)
    SendKeys "{End}"
    ' &Eingabetaste drücken (fügt eine neue Zeile ein)
    SendKeys "~"
    ' & Alt + 0 drücken (stellt bei mir die Formatierung „Absatz Standard“ ein)
    SendKeys "%0"
End Sub

Den originalen Befehlstext habe ich belassen und lediglich auskommentiert, um mir die Arbeit zu erleichtern und zu zeigen, wie die Syntax übersetzt wird. Wie man sieht, gar nicht so kompliziert. Das Skript konnte ich nicht testen, "bürge" aber für die Richtigkeit der Übersetzung.

Damit wird das Thema dann auch in die "Bastel-Ecke" verschoben...

DPI 15 (15.00.000.076) auf Windows 8.1 (64-bit)
SpeechMike Premium (LFH3500) mit Philips Device Control Center (3.0)
Intel i7 2600 QuadCore - 3.4 GHz - 8 MB L3-Cache - 6 GB RAM

5

Re: Backslash zur autom. Nummerierung mittels Befehl in Word übertragen

Das Script ist unglaublich viel schneller - ganz herzlichen Dank! Aber leider kommen die Backslashs auch damit nicht in Word an. Der Befehl

"SendKeys "SEQ Anlagen" & Chr(92) & "* Arabic " & Chr(92) & "* MERGEFORMAT""

fügt lediglich

"SEQ Anlagen* Arabic * MERGEFORMAT"

in Word ein :-(

Das Einfügen der Zeichen in DragonPad und das Diktierfenster mit dem Befehl "SendKeys "SEQ Anlagen" & Chr(92) & "* Arabic " & Chr(92) & "* MERGEFORMAT"" funktioniert bestens. Es scheint sich also um ein auf Word bezogenes Problem zu handeln.

6

Re: Backslash zur autom. Nummerierung mittels Befehl in Word übertragen

rc.otto schrieb:

Es scheint sich also um ein auf Word bezogenes Problem zu handeln.

Eh wir nun lange orakeln, warum Sendkeys unter VBA Schwierigkeiten mit dem Backslash hat, folgen Sie doch einfach der altbewährten Methode: Skript-Sprachbefehle für Word als Word-Makro aufzeichnen lassen und den Code in Dragon übernehmen. Ich habe das schon mal für Sie erledigt:

Sub Main
    Selection.TypeParagraph
    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
    Selection.Font.Bold = wdToggle
    Selection.TypeText Text:="Anlage"
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
        PreserveFormatting:=False
    Selection.TypeText Text:="SEQ Anlagen \* Arabic \* MERGEFORMAT"
    Selection.Fields.Update
    Selection.EndKey Unit:=wdLine
    Selection.TypeParagraph
End Sub


Selbstverständlich kann der Code noch optimiert werden. Vergessen Sie nicht, die Word-Library einzubinden (Alt-Return).
Gruß, Pascal

7

Re: Backslash zur autom. Nummerierung mittels Befehl in Word übertragen

Das klappt super. Auf die Idee mit dem Word-Makro war ich zwar bereits selber gekommen, mir war aber nicht klar, dass ich die Word-Bibliothek noch einbinden muss, sodass ich es nicht zum Laufen habe bringen können. An alle herzlichen Dank!

8

Re: Backslash zur autom. Nummerierung mittels Befehl in Word übertragen

P.Roch schrieb:

Eh wir nun lange orakeln, warum Sendkeys unter VBA Schwierigkeiten mit dem Backslash hat, folgen Sie doch einfach der altbewährten Methode:

Och schade, ich wollte gerne noch ein bisschen orakeln, etwa in der Halbzeitpause, aber das Word-Makro ist sicherlich die elegantere Lösung, wie man sieht.

DPI 15 (15.00.000.076) auf Windows 8.1 (64-bit)
SpeechMike Premium (LFH3500) mit Philips Device Control Center (3.0)
Intel i7 2600 QuadCore - 3.4 GHz - 8 MB L3-Cache - 6 GB RAM

9

Re: Backslash zur autom. Nummerierung mittels Befehl in Word übertragen

R.Wilke schrieb:

Och schade, ich wollte gerne noch ein bisschen orakeln,

Das zu tun steht dir doch frei, Rüdiger - manchmal ist die Halbzeitpause interessanter als das Spiel.
Fakt ist jedenfalls: Sendkeys in VBA verlangt für bestimmte Sonderzeichen einschließende geschweifte Klammern, was auch hinreichend dokumentiert ist. Der Backslash fällt nicht unter diese Ausnahmen, und sonderbarerweise findet sich auch in Weiten des Internets keine Erklärung für unser Problem.
Ich jedenfalls geh in der Halbzeitpause lieber mal auf den Balkon.
Grüße, Pascal

10

Re: Backslash zur autom. Nummerierung mittels Befehl in Word übertragen

P.Roch schrieb:

Das zu tun steht dir doch frei, Rüdiger

Das hatte ich schon - mit den selben Ergebnissen wie von Dir referiert. In einigen Skript-Dialekten geht es mit dem doppelten Backslash (der erste maskiert dann den Backslash als Escape-Zeichen), aber in dem Fall leider nicht. Kann man halt nichts machen.

DPI 15 (15.00.000.076) auf Windows 8.1 (64-bit)
SpeechMike Premium (LFH3500) mit Philips Device Control Center (3.0)
Intel i7 2600 QuadCore - 3.4 GHz - 8 MB L3-Cache - 6 GB RAM