Mit Bild
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.
Mit Bild
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".
Mit Bild
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 Bild
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.
Mit Bild
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.
Mit Bild
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.
Mit Bild
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.
Mit Bild
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:
Mit Bild
Der Beispiel-Code zum Umleitung interner Befehle
Mit Bild
Leider ist das automatisch generierte Beispiel fehlerhaft.
Mit Bild
Fehlermeldung beim Öffnen der Datei in Word
Mit Bild
Tatsächlich heißt die idMso zum Speichern-Befehl FileSave und muss daher wie folgt korrigiert werden:
Mit Bild
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <commands> <command idMso="Bold" enabled="false"/> <command idMso="FileSave" onAction="MySave"/> </commands> </customUI>
Mit Bild
Der korrigierte XML-Code
Mit Bild
Anschließend müssen Sie in Word mit dem VBA-Editor noch die im onAction-Attribut aufgerufene Prozedur MySave erstellen:
Mit Bild
'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
Mit Bild
Die VBA-Prozedur wird vom Speichern-Befehl aufgerufen
Mit Bild
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:
Mit Bild
Ihre Prozedur meldet sich beim offiziellen Speichern-Befehl
Mit Bild
Makros
Damit das Beispiel funktioniert, müssen Sie in Word die Makros aktivieren.
Mit Bild
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:
Mit Bild
Die Fett-Schaltfläche ist grau und nicht ausführbar
Mit Bild
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.