Aktuelle Seite:
/vba/vbptooltipps.htm
Letzte Änderung: 24.06.2006

Getestet unter Word2000Getestet unter WordXP  
VBA-Code verfügbar: nein
Beispiel anzeigen
Makro/Datei speichern
Print

Da hat man mit viel Mühe ein Makro geschrieben, dieses über Extras->Anpassen in eine Symbolleiste eingefügt und evtl. auch den Namen geändert, doch bewegt man die Maus über das Symbol wird als ToolTipp nur der Makroname angezeigt.
Besser geht es demjenigen, der die Symbole gleich per Makro in die Symbolleiste einfügt, da in diesem Fall auch die ToolTipps direkt mitgesetzt werden können. Aber diese Methode ist in den meisten Fälle zu aufwändig.

Die einzige Möglichkeit, die standardmäßig vergebenen ToolTipps zu ändern, ist diese nachträglich durch eigene Beschreibungen zu ersetzen. Dazu muss der jeweilige Symbolleisteneintrag aber zuerst identifiziert werden. Zur Identifikation eines Symbolleisteneintrags werden folgende Inforamtionen benötigt (siehe auch  Symboleisten (I) und (II):

  • der Symbolleistennamen
  • die Position des Eintrags in der Symbolleiste
  • Optional der Typ des Eintrags (Schaltfläche, Auswahlliste...)
  • Optional die ID des Eintrags (ID:=1 für benutzerdefinierte Controls)

Sobald der Symbolleisteneintrag identifiziert ist, und sich somit im Zugriff befindet, können die Eigenschaften des Controls gelesen und (bedingt) geändert werden.

Dim cbar As CommandBar  
Dim ctlbar As CommandBarControl  
Dim sType As String  
Set cbar = CommandBars("Standard")  
Set ctlbar = cbar.Controls(1)  
With ctlbar  
  Debug.Print .OnAction  
  Debug.Print .Typ  
  Debug.Print .Caption  
  Debug.Print .TooltipText  
End With 

Mit diesen Eigenschaften lassen sich fast alle Informationen auslesen. Allerdings steht die OnAction-Eigenschaft nur für benutzerdefinierte Aufrufe und nicht für die internen Befehle zur Verfügung.
Um aber auch das jeweilige Symbol auslesen zu lassen, ist die Hilfe von externen Programm erforderlich, da über das DataObject keine Grafiken in die Zwischenablage kopiert werden können. Diese Einschränkung kann mit einer ActiveX-DLL von  AboutVB umgangen werden. Dazu wird das DataObject-Object um die Eigenschaft der Grafikaufnahme erweitert.
Mit dieser DLL lässt sich für normale Schaltflächen (CommandBarButtons) das Symbol über das DataObject auslesen und z.B. in einem Bildfeld auf der Userform anzeigen.

    Image1.Picture = avbCLP.GetData

Für alle anderen Typen des CommandBarControls steht diese Methode nicht zur Verfügung.

Da der Makroname keine unmittelbare Bedeutung für die eigenen Symbolleisteneinträge besitzt, genügt es, nur die TooltipText-Eigenschaft zu ändern und dem Eintrag zuzuweisen.

Die angebotene Dokumentvorlage kann z.B. als Add-In eingebunden werden und bietet die Möglichkeit, die ToolTipps der Symbolleisteneinträge zu ändern. Dazu wird durch die Dokumentvorlage eine neue Symbolleiste angezeigt, in der nur eine Schaltfläche enthalten ist.

ToolTipps ändern

Über diese Schaltfläche wird ein Dialogfenster geöffnet, in der in einer Auswahlliste alle sichtbaren Symbolleisten aufgelistet werden. Nach der Auswahl einer Symbolleiste werden in einer zweiten Übersicht alle Symbolleisteneinträge angezeigt. Wird ein Eintrag aus dieser Liste angeklickt, werden folgende Informationen (sofern verfügbar) angezeigt:

  • Symbol
  • Typ
  • (interner) Name
  • Makroname/Funktionsname
  • TooltipText

Der TooltipText kann im Eingabefeld geändert und über die Schaltfläche [Ändern] dem Symbolleisteneintrag zugewiesen werden. Allerdings können die ToolTipps nicht bei allen Vorlagen oder Add-Ins auch anschließend gespeichert werden, was an dieser Stelle jedoch nicht weiter berücksichtigt wird.

Update
in der aktuellen Version muss die ActiveX-DLL nicht mehr vorhanden/registriert sein, um die Funktion nutzen zu können. In diesem Fall erfolgt dann allerdings keine Symbolanzeige mehr.


Den Artikel und die Dateien zu der ActiveX-DLL findet Ihr unter:
 http://www.aboutvb.de/vba/artikel/vbaclipboard.htm


 www.chf-online.de/vba/vbptooltipps.htm © 2001-11 Christian Freßdorf (Zaphod-Systems)