Interne Befehle in Word 2007 umleiten

Bisher war es mehr als mühsam, wenn Sie die Word-internen Befehle abfangen oder auf eigene Aktionen umleiten wollen. Das ist jetzt komplett anders und viel einfacher. Erstellen Sie nämlich Ribbons per XML-Datei, haben Sie auch die Möglichkeit, Word-interne Befehle umzuleiten.

∅ 5 / 1 Bewertungen

Bisher war es mehr als mühsam, wenn Sie die Word-internen Befehle abfangen oder auf eigene Aktionen umleiten wollen. Das ist jetzt komplett anders und viel einfacher. Individuell angepasste Ribbons machen's möglich.

Einsatz der neuen Office 2007-Ribbons

Um den grundsätzlichen Umgang mit den neuen Office 2007-Ribbons kennenzulernen, finden Sie die ausführliche Anleitung im Artikel "Ribbons erstellen in Word 2007".

Wer regelmäßig mit Word arbeitet, steht immer mal wieder vor dem Problem, die internen Word-Befehle austauschen oder deaktivieren zu müssen. So kann zum Beispiel das Corporate Design im Unternehmen vorschreiben, dass kursive Schrift nicht erlaubt ist. Bisher war das mehr als mühsam, denn Sie mussten sich um alle Möglichkeiten selbst kümmern, wie ein Benutzer Text beispielsweise kursiv formatieren konnte:

  • mit dem Tastenkürzel Strg+Umschalt+K,

  • über die Kursiv-Schaltfläche in der Format-Symbolleiste,

  • über den Format-Zeichen-Dialog sowohl im Menü als auch im Kontext-Menü per Rechtsklick sowie als Tastenkürzel Strg+D.

Letzten Endes gab es immer irgendein Schlupfloch, sodass Sie nie sicher waren, ob Sie alle Varianten erwischt hatten, mit denen ein Benutzer einen Text beispielsweise kursiv formatieren konnte.

Das ist jetzt komplett anders und viel einfacher. Die bereits im Beitrag "Ribbons erstellen in Word 2007" besprochene Technik, Ribbons per XML-Datei zu erstellen, enthält auch die Möglichkeit, Word-interne Befehle umzuleiten.

Gleiche Funktionalität in allen Office 2007-Programmen

Auch wenn das Beispiel hier in Word eingebaut ist, funktioniert es grundsätzlich gleich in den anderen Office 2007-Programmen. Lediglich die Namen der integrierten Register und Gruppen können sich unterscheiden.

Erstellen Sie zum Testen eine neue leere Word-Datei im Format "Word-Dokument mit Makros" (*.docm) oder "Word-Vorlage mit Makros" (*.dotm). Öffnen Sie diese dann im Custom UI Editor und fügen Sie mit dem Menü Sample/Repurpose den folgenden Code ein:

60283_repurpose_xml01.png

Der Beispiel-Code zum Umleitung interner Befehle

Leider ist das automatisch generierte Beispiel fehlerhaft.

60284_repurpose01fehler.png

Fehlermeldung beim Öffnen der Datei in Word

Tatsächlich heißt die idMso zum Speichern-Befehl FileSave und muss daher wie folgt korrigiert werden:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
	<commands>
		<command idMso="Bold" enabled="false"/>
		<command idMso="FileSave" onAction="MySave"/>
	</commands>
</customUI>
60285_repurpose_xml02.png

Der korrigierte XML-Code

Anschließend müssen Sie in Word mit dem VBA-Editor noch die im onAction-Attribut aufgerufene Prozedur MySave erstellen:

'Callback for FileSave on Action
Sub MySave(control As IRibbonControl, ByRef cancelDefault)
    If MsgBox("Wollen Sie wirklich speichern?", _
      vbQuestion + vbYesNo + vbDefaultButton2) = vbYes Then
      ActiveDocument.Save
    End If
End Sub
60286_repurpose_vba01.png

Die VBA-Prozedur wird vom Speichern-Befehl aufgerufen

Diese Prozedur speichert nicht mehr direkt, sondern erst nach einer Rückfrage an den Benutzer. Das ist natürlich inhaltlich nicht besonders sinnvoll, soll aber vor allem zeigen, wie diese Technik funktioniert.

Sobald ein Benutzer auf die (oben in der Schnellstartleiste gelegene) Word-interne Speichern-Schaltfläche klickt, wird nun offensichtlich Ihre eigene Prozedur ausgeführt:

60287_repurpose_word01.png

Ihre Prozedur meldet sich beim offiziellen Speichern-Befehl

Makros

Damit das Beispiel funktioniert, müssen Sie in Word die Makros aktivieren.

Für die Fett-Schaltfläche ist kein Code nötig, denn diese Word-interne Funktionalität wurde mit enabled="false" einfach deaktiviert. Sie müssen sich dabei nicht mehr darum kümmern, wie etwas fett formatiert werden soll. Word selber deaktiviert sowohl die Tastenkürzel als auch alle Symbole:

60288_repurpose_word02.png

Die Fett-Schaltfläche ist grau und nicht ausführbar

Schriftart-Dialog bleibt als Schlupfloch

Leider hat Microsoft dabei eine Lücke im Konzept übersehen. Einen markierten Bereich können Sie auch mit dem Schriftart-Dialog aufrufen, nämlich über den so genannten DialogboxLauncher rechts unten an der Gruppe Schriftart oder über das Kontextmenü (Rechtsklick auf "Schriftart"). Dort lässt sich weiterhin eine fette Schriftauszeichnung durchführen.