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: 0 online  |  0 heute  |  0 diesen Monat  |  2232550 insgesamt | Seitenaufrufe: 85   Letzte Änderung: 24.06.2006 © 2001-18 Christian Freßdorf
  Ich wage die Vorhersage, daß die exakte Reproduktion des Menschen nicht populär wird. Zu viele Leute finden es bereits jetzt schwierig, mit sich selbst auszukommen.
Jeanne Dixon
 powered by phpCMS and PAX