Interne Befehle in Word 2007 umleiten

Von: Lorenz Hölscher
Stand: 4. Mai 2011
5
(1)
Beitrag bewerten
Anmelden um Kommentare zu schreiben

Downloads zu diesem Beitrag

Über den Autor: Lorenz Hölscher

bild80517

Lorenz Hölscher ist freiberuflicher Dozent, Berater und Programmierer mit Schwerpunkt Anwendungs-Programmierung. Vorrangig widmet er sich Access, Word und Excel sowie begleitenden grafischen Arbeiten. Er legt viel Wert auf benutzerfreundliche Oberflächen und ordentliches Design in Optik und Programmierung. Zu Hilfe kommen ihm da seine langjährigen "branchenfremden" Erfahrungen als Architekt, Layouter und Designer.

Lorenz Hölscher bietet eigene Hilfeseiten an und hat bei Microsoft Press mehrere Bücher veröffentlicht zu Access 2007, Access 2007 VBA, Word 2007 VBA und Access 2010.

Beiträge des Autors als Atom-Feed Atom-Feed: Neues von akademie.de

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:

Bild vergrößernDer Beispiel-Code zum Umleitung interner Befehle

Leider ist das automatisch generierte Beispiel fehlerhaft.

Bild vergrößernFehlermeldung 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>

Bild vergrößernDer 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

Bild vergrößernDie 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:

Bild vergrößernIhre 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:

Bild vergrößernDie 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.


Dieser Beitrag ist öffentlich.
Zugriff auf alle Inhalte haben Sie als Mitglied

Werden Sie Probemitglied - kostenlos.

Ohne finanzielles Risiko haben Sie Zugriff auf alle Inhalte auf akademie.de, außer Downloads. Die Anmeldung dauert drei Minuten. Sie können während der ersten 14 Tage ohne Angabe von Gründen stornieren. Eine E-Mail genügt.

Weitere Informationen finden Sie auf unserer Infoseite zur Mitgliedschaft und in unseren AGB.

Ich bin bereits Mitglied
Jetzt Probemitglied werden
Ich kann in den 14 Tagen Probezeit formlos z.B. per E-Mail stornieren. Wenn ich das nicht tue, entscheide ich mich für ein

Beitrag bewerten

Ihre Wertung:

 

Kommentar-Darstellungsoptionen

Wählen Sie hier Ihre bevorzugte Anzeigeart für Kommentare aus und klicken Sie auf „Einstellungen speichern“ um die Änderungen zu übernehmen.

das habe ich gesucht! Danke