2
www.ChF-Online.de  

Felder aktualisieren

   Neuigkeiten
   API-Aufrufe in VBA
   VBA2HTML
   Word
   Word-VBA
   Word2007 (RibbonX)
   Word2010 (RibbonX)
   Outlook-VBA
aktiv aktiv Menüeinträge hinzufügen
 Mails flexibel exportieren
   Links zu VB(A)
   DocToHelp
   Netport Express XL
   Astronomie
   Gästebuch
   Volltextsuche
   Sitemap
   Buch:Word-Programmierung
   Impressum & Kontakt
   Datenschutzerklärung
Getestet unter Outlook2000  
Makro/Datei speichern
Print

Auch in Outlook lassen sich wie in Word eigene Menüeinträge erzeugen. Um allerdings einem Menüeintrag ein Makro zuzuweisen, muss dieses vollständig mit dem VBAIDE-Pfad angegeben werden.

Das folgende Beispiel zeigt, wie ein neuer Menüpunkt mit einem Menüeintrag angelegt wird, sofern nicht bereits ein gleichnamiger Eintrag existiert:

Menübeispiel


Dabei wird zuerst geprüft, ob der Menüpunkt bereits existiert, ansonsten wird er neu angelegt. Diesem Menüpunkt wird dann ein neuer Menüeintrag hinzugefügt; dabei wird wieder geprüft, ob dieser bereits existiert. Als Aktion (.OnAction-Eigenschaft des Controls) muss das Makro mit vollständigem Pfad innerhalb der VBAIDE angegeben werden.
In diesem Beispiel das Makro MeinMakro im Modul modTest des Projektes Projekt1:
"Projekt1.modTest.MeinMakro".

Zur eindeutigen Identifizierung wird dazu ein Eintrag in die Tag-Eigenschaft eingetragen, über die der Eintrag gesucht werden kann.

Public Sub CreateMenu()  
Dim cbar As CommandBar 
Dim ctlcbar  As CommandBarControl 
Dim ctlNew  As CommandBarControl 
' Verweis auf die Menüleiste setzen  
Set cbar = ActiveExplorer.CommandBars("Menu Bar")
On Error Resume Next 
Set ctlcbar = cbar.Controls("&Eigenes")
If ctlcbar Is Nothing Then 
  Set ctlcbar = cbar.Controls.Add(Type:=msoControlPopup, ID:=1)
End If 
With ctlcbar
  .Caption = "&Eigenes"
End With 
' Prüfen, ob Eintrag bereits vorhanden ist.  
Set ctlNew = ctlcbar.Controls("Neuer Eintrag")
' oder per FindControl suchen  
On Error GoTo 0
If ctlNew Is Nothing Then 
  Set ctlNew = cbar.FindControl(Type:=msoControlButton, Tag:="Neuer Eintrag", ID:=1, Recursive:=True)
End If 
If ctlNew Is Nothing Then 
  Set ctlNew = ctlcbar.Controls.Add(Type:=msoControlButton, ID:=1)
End If 
With ctlNew
  .BeginGroup = True ' Trennt den Eintrag ab  
  ' mit FaceId kann ein integrietes Symbol verwendet werden  
  .FaceId = 3817
  .Caption = "Neuer Eintrag"
  ' Vollständiger Verweis auf das Makro  
  .OnAction = "Projekt1.modTest.MeinMakro"
  ' optional z.B. zur Identifizierung  
  .Tag = "NeuerEintrag"
  .TooltipText = "Hier steht der Tooltipp"
End With 
' Eintrag anzeigen  
cbar.Visible = True 
End Sub  

 Besucher: 2 online  |  84 heute  |  3582 diesen Monat  |  2150934 insgesamt | Seitenaufrufe: 100   Letzte Änderung: 24.06.2006 © 2001-18 Christian Freßdorf
  Nie aber weiß man genau, was man denkt, bevor man nicht versucht hat, darüber zu sprechen.
Kurt Marti
 powered by phpCMS and PAX