einem Makro, das wie die meisten meiner anderen Makros in der Normal.dot im
Projekt NewMacros liegt, habe ich in Word 97 unter
Extras/Anpassen/Befehle/Tastatur (unter der Rubrik Makros) eine
Tastenkombination zugeordnet.
Als Dokumentvorlage war die Normal.dot eingestellt. Die Zuordnung wurde
übernommen, d. h. erscheint auch, wenn ich später nochmals unter
Extras/Anpassen/Befehle/Tastatur bei diesem Makro nachsehe. Leider reagiert
das Makro nicht auf diese Tastenkombination - zur Prüfung - auch mal einen
Breakpoint in das Makro gesetzt. Das Makro wird bei dieser Tastenkombination
nicht aufgerufen.
Ergänzend habe ich dieses Makro mal auf die Menüleiste gezogen; beim
Anklicken des Menüs reagiert hier das Makro problemlos.
Weder ist das Makro exotisch (wenige Zeilen, macht ne reine
Schriftformatierung) noch die Tastenkombination - sie war [Alt][Shift] T
Alternativ hab ich's mal mit der Belegung anderer Tastenkombinationen
probiert - geht ebenfalls nicht.
Schließlich hab ich zum weiteren Check diese Tastenkombi einem anderen Makro
zugeordnet - das ging auch.
Alle anderen Makros, denen ich eine Tastenkombi zugeordnet hab, reagieren
darauf.
Hab keine Ahnung, warum's hier nicht geht.
Was könnte die Ursache sein bzw. wie könnte ich ihr auf die Spur kommen?
Wie läßt sich das Problem lösen?
Thomas Wiedmann
Hallo Thomas,
Wenn du zunächst die Tastenkombo Strg + Alt + (Num+) verwendest
(Steuerungstaste, Alt-Taste und "+" auf dem Ziffernfeld rechts außen
gleichzeitig), und danach irgendeine Tastenkombination (in Deinem Fall
Alt+Umschalt+T), dann solltest du sehen, ob der Tastenkombination im Moment
ein Makro oder irgendwas anderes zugeordnet ist.
Anpassungen im Dokument und in der verbundenen Dokumentvorlage haben eine
höhere Priorität als solche in der Normal.dot -- Vielleicht wurde die
Tastenkombination versehentlich dort etwas zugewiesen? Oder spuckt ein
Add-In in die Suppe?
Gruß,
Klaus
Da passiert gar nichts. Zur Kontrolle hab ich auch mal das VBA-Statement
Application.ListCommands True
ausgeführt, das ja die Standard-Shortcuts auflistet. Da war Strg + Alt +
(Num+) nicht dabei.
Was soll denn der Shortcut Strg + Alt + (Num+) tun - ist er
benutzerdefiniert?
> Oder spuckt ein Add-In in die Suppe?
Nein.
Daher nochmals die Frage:
Woran kann es liegen, daß bei der zugewiesenen Tastenkombination
[Alt][Shift] T das Makro nicht ausgeführt wird?
Wie kann ich erreichen, daß das Makro tatsächlich mit [Alt][Shift] T läuft
(siehe meine Beschreibung im 1. Posting), obwohl das zuvor einem anderen,
jetzt nicht mehr existierenden Makro zugewiesen war?
Da scheint nämlich der Hase im Pfeffer zu liegen, aber ich weiß nicht,
warum.
Wo speichert denn Word die Makro-Shortcuts? In der Registry, in einer Datei?
Ich vermute halt, daß dort, wo Word die Shortcuts speichert, [Alt][Shift] T
noch auf das alte Makro zeigt, das es aber gar nicht mehr gibt. Dann müßte
es doch ne Möglichkeit geben, diesen alten Eintrag zu entfernen, oder nicht?
Thomas Wiedmann
Der Cursor auf dem Bildschirm sollte sich zumindest in ein Kleeblatt
(Control-Symbol) ändern ...
Zur Kontrolle hab ich auch mal das VBA-Statement
> Application.ListCommands True
> ausgeführt, das ja die Standard-Shortcuts auflistet. Da war Strg + Alt +
> (Num+) nicht dabei.
Bei mir schon, wenn ich "Word-Befehle" auswähle:
Anpassen Tastatur Shortcut Alt+Strg + Num +
(Alt-Taste gedrückt halten, Steuerungs-Taste gedrückt halten, "+" rechts
außen in der zweiten Reihe von oben drücken)
> Was soll denn der Shortcut Strg + Alt + (Num+) tun - ist er
> benutzerdefiniert?
Es ist ein eingebauter Befehl, "ExtrasAnpassenTastaturShortcut"... ein
Dialog, der so ziemlich das macht, was der Name sagt. Der Dialog zeigt meist
auch an, wo der Shortcut gespeichert ist. Wenn das Tastenkürzel per
COM-Add-In hinzugefügt wurde, klappt es allerdings (nach meiner Erfahrung)
nicht.
> Wo speichert denn Word die Makro-Shortcuts?
Tastenkürzel können in globalen Vorlagen und Add-Ins definiert sein, in der
Normal.Dot, in der verbundenen Dokumentvorlage, oder im Dokument. Word
klappert die nacheinander ab (globale Vorlagen in alphabetischer
Reihenfolge), und was später kommt, gewinnt. COM-Add-Ins "hijacken" oft ihre
Tastenkürzel programmatisch, und der oben erwähnte Dialog kann sie dann
nicht zurückverfolgen. Man kann solche Add-Ins vorübergehend entfernen um
das schuldige zu ermitteln.
Tastenkürzel kann man recht sicher per VBA hinzufügen, wobei man den
"CustomizationContext" angeben sollte -- also den Ort, wo das Kürzel
gespeichert werden soll.
Das ist vermutlich derselbe Ort, wo das zugehörige Makro gespeichert ist, in
deinem Fall zum Beispiel:
CustomizationContext = NormalTemplate
Klaus
> Bei mir schon, wenn ich "Word-Befehle" auswähle:
> Anpassen Tastatur Shortcut Alt+Strg + Num +
> (Alt-Taste gedrückt halten, Steuerungs-Taste gedrückt halten, "+" rechts
> außen in der zweiten Reihe von oben drücken)
Sicher, dass er keine Notebook- oder vergleichbare Kompakttastatur
besitzt? :-)
Hat jetzt geklappt (auf einem anderen Rechner) geklappt, d. h. Cursor wird
zum Kleeblatt. Auf dem Notebook ist das mit den [Num]-Tasten so ne Sache
(geht natürlich auch, wenn man die richtigen Tasten drückt).
>> Was soll denn der Shortcut Strg + Alt + (Num+) tun - ist er
>> benutzerdefiniert?
>
> Es ist ein eingebauter Befehl, "ExtrasAnpassenTastaturShortcut"... ein
> Dialog, der so ziemlich das macht, was der Name sagt. Der Dialog zeigt
> meist auch an, wo der Shortcut gespeichert ist. Wenn das Tastenkürzel per
> COM-Add-In hinzugefügt wurde, klappt es allerdings (nach meiner Erfahrung)
> nicht.
Ja, scheint auch nur teilweise zu gehen. Hab's mal für verschiedene
Shortcuts ausprobiert. Bei meinem [Alt][Shift] T geht in dem Dokument, wo
das Makro, dem dieser Shortcut zugewiesen wurde, nicht darauf reagiert, der
Kleeblatt-Cursor wieder in den "normalen" Cursor (Einfügezeichen) über. In
einem anderen Dokument (mit anderer Dokumentvorlage), wo das Makro auf den
Shortcut reagiert, erscheint tatsächlich auch der Tastatur-Anpassen-Dialog
mit dem Shortcut, allerdings mit dem Eintrag EinfügenFeldZeit, was ja die
Word-Vorbelegung für diesen Shortcut ist; es erscheint hier aber nicht der
Name des Makros - scheint also nicht 100% korrekt zu sein. Bei anderen
Shortcuts wird das Makro, dem dieser Shortcut zugewiesen wurde, korrekt
angezeigt. Unter Extras/Vorlagen und Add-Ins sind keine Add-Ins eingetragen.
>> Wo speichert denn Word die Makro-Shortcuts?
>
> Tastenkürzel können in globalen Vorlagen und Add-Ins definiert sein, in
> der Normal.Dot, in der verbundenen Dokumentvorlage, oder im Dokument. Word
> klappert die nacheinander ab (globale Vorlagen in alphabetischer
> Reihenfolge), und was später kommt, gewinnt. COM-Add-Ins "hijacken" oft
> ihre Tastenkürzel programmatisch, und der oben erwähnte Dialog kann sie
> dann nicht zurückverfolgen. Man kann solche Add-Ins vorübergehend
> entfernen um das schuldige zu ermitteln.
Wie findet man denn alle Add-In's raus, die bei Word ne Rolle spielen
können?
Kann man das "Word klappert die nacheinander ab ..." irgendwie debuggen oder
eben rausfinden, was da Word absucht bzw. welches Add-In "in die Suppe
spuckt; falls ja, wie?
> Tastenkürzel kann man recht sicher per VBA hinzufügen, wobei man den
> "CustomizationContext" angeben sollte -- also den Ort, wo das Kürzel
> gespeichert werden soll.
Wie, d. h. mit welchem VBA-Befehl, fügt man einen Shortcut hinzu?
Thomas Wiedmann
Word 2003: Hilfe-Menü ("?") > Info > Systeminfo > Office 2003 Anwendungen >
Microsoft Office Word 2003 > COM-Add-Ins.
> Kann man das "Word klappert die nacheinander ab ..." irgendwie debuggen
> oder eben rausfinden, was da Word absucht bzw. welches Add-In "in die
> Suppe spuckt; falls ja, wie?
Nicht ohne eine Menge Aufwand, leider.
Ein recht häufiges Problem sind Add-Ins, die verhindern, dass Anpassungen
automatisch (beim Beenden von Word) gespeichert werden. Um dieses Problem zu
umgehen, könntest du versuchen, das Tastenkürzel nochmals zuzuweisen
(eventuell zur Sicherheit die Anleitung hier checken:
http://word.mvps.org/FAQs/Customization/AsgnCmdOrMacroToHotkey.htm), und
danach die Normal.dot "von Hand" speichern (in VBA-Editor-Menü "Datei >
Normal speichern", oder im Dokument-Menü Umschalt-Taste drücken und dann
"Datei > Alles speichern").
> Wie, d. h. mit welchem VBA-Befehl, fügt man einen Shortcut hinzu?
KeyBindings.Add ... Die VBA-Hilfe sollte weiterhelfen, falls du das
versuchen möchtest.
CustomizationContext = NormalTemplate
KeyBindings.Add KeyCategory:=wdKeyCategoryMacro, _
Command:="Normal.myTemplate.myMacro", _
KeyCode:=BuildKeyCode(wdKeyAlt, wdKeyShift, wdKeyT)
Gruß,
Klaus