Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Outlook-Menüleiste per VBA funktioniert nicht

Frage Entwicklung VB for Applications

Mitglied: Mark-O

Mark-O (Level 1) - Jetzt verbinden

03.03.2008, aktualisiert 02.06.2008, 8338 Aufrufe, 1 Kommentar

Hallo,

ich würde mir gerne eine eigene Menüleiste mit Combo-Box in Outlook 2003 programmieren, dazu gibt es auch eine Hilfeseite bei Microsoft:

http://www.microsoft.com/germany/msdn/library/office/MehrZumThemaProgra ...

Wenn ich nachstehendes Script (minimale Veränderungen aus der MS-Seite) ausführe, da bleibt es mir an dieser Zeile mit Laufzeitfehler 438 (Objekt unterstützt diese Eigenschaft oder Methode nicht) hängen. Und das bei OL2003 und OL2000:

' Die nächste Codezeile ersetzen durch:
Set objCommandBarComboBox = _
Application.CommandBars.Item(strCommandBarName).Controls.Add(msoControlComboBox)
'<- Für Outlook ÄNDERUNG: HIER AKTIVIERT


An was könnte das liegen?
Danke für jede Hilfe
Mark

Public Function AddComboBoxToCommandBar(ByVal strCommandBarName As String, _
ByVal strComboBoxCaption As String, _
ByRef strChoices() As String) As Boolean
' Zweck: Fügt einer Befehlsleiste ein Kombinationsfeld hinzu.
' Akzeptiert:
' strCommandBarName: Der Name der Befehlsleiste zum Hinzufügen des Kombinationsfeldes.
' strChoices(): Ein Optionsarray für das Kombinationsfeld.
' Rückgabe: TRUE, wenn das Kombinationsfeld erfolgreich der Befehlsleiste hinzugefügt wurde.
Dim objCommandBarControl As Office.CommandBarControl
Dim objCommandBarComboBox As Office.CommandBarComboBox
Dim varChoice As Variant
'On Error GoTo AddComboBoxToCommandBar_Err ÄNDERUNG: ALS KOMMENTAR, DAMIT FEHLERMELDUNG ERSCHEINT
' Alle zuvor hinzugefügten Instanzen dieses Kombinationsfeldes löschen.
' Die nächste Codezeile ersetzen durch:
For Each objCommandBarControl In _
Application.ActiveExplorer.CommandBars.Item(strCommandBarName).Controls
'<- Für Outlook ÄNDERUNG: HIER AKTIVIERT
' For Each objCommandBarControl In _
' Application.VBE.CommandBars.Item(strCommandBarName).Controls _
<- Für Visual Basic-Editor
'For Each objCommandBarControl In Application.CommandBars.Item(strCommandBarName).Controls
If objCommandBarControl.Caption = strComboBoxCaption Then
objCommandBarControl.Delete
End If
Next objCommandBarControl
' Das Kombinationsfeld erstellen.


' Die nächste Codezeile ersetzen durch:
Set objCommandBarComboBox = _
Application.CommandBars.Item(strCommandBarName).Controls.Add(msoControlComboBox)
'<- Für Outlook ÄNDERUNG: HIER AKTIVIERT


' Set objCommandBarComboBox = _
' Application.CommandBars.Item(strCommandBarName).Controls.Add(msoControlComboBox) _
<- Für Visual Basic-Editor
'Set objCommandBarComboBox = _
Application.CommandBars.Item(strCommandBarName).Controls.Add(msoControlComboBox)
objCommandBarComboBox.Caption = strComboBoxCaption
For Each varChoice In strChoices
objCommandBarComboBox.AddItem varChoice
Next varChoice
AddComboBoxToCommandBar_End:
AddComboBoxToCommandBar = True
Exit Function
AddComboBoxToCommandBar_Err:
AddComboBoxToCommandBar = False
End Function


Public Sub TestAddComboBoxToCommandBar()
' Zweck: Testet die AddComboBoxToCommandBar-Funktion.
Dim strChoices(4) As String
strChoices(1) = "Vanilla"
strChoices(2) = "Chocolate"
strChoices(3) = "Strawberry"
strChoices(4) = "Other"
If AddComboBoxToCommandBar("Tools", "Favorite Ice Cream", _
strChoices) = True Then
MsgBox "Das Kombinationsfeld wurde erfolgreich hinzugefügt."
Else
MsgBox "Das Kombinationsfeld konnte nicht hinzugefügt werden."
End If
End Sub
Mitglied: Mark-O
02.06.2008 um 13:35 Uhr
Bin das Thema nach Wochen nochmals angegangen. Hier die unausgearbeitete Lösung für Outlook 2003.

Gruß
Mark

Private Sub Application_Startup()
Dim customBar As CommandBar
Dim icon As CommandBarButton
Dim ctlCBarCombo As CommandBarComboBox
Dim ctlCBarCEdit As CommandBarControl



On Error Resume Next
Application.ActiveExplorer.CommandBars("Custom").Delete
Err.Clear

Set customBar = Application.ActiveExplorer.CommandBars.Add("Custom", msoBarTop, temporary:=True)

Set ctlCBarCombo = customBar.Controls.Add(Type:=msoControlComboBox, temporary:=True)
With ctlCBarCombo
.AddItem "Red"
.AddItem "Green"
.AddItem "Blue"
.ListIndex = 1
.Caption = "Combo Box"
'.Clear
'.RemoveItem
'.DropDownLines = 3 'Anzahl Zeilen von Combobox
'.Width = 330 'Breite der ComboBox, evtl. anpassen
'.DropDownWidth = 330 'Breite der Anzeige, evtl. anpassen
'.ListCount 'gibt die Anzahl der Einträge wieder
.OnAction = "Project1.ThisOutlookSession.Combo"

End With




Set ctlCBarCEdit = customBar.Controls.Add(Type:=msoControlEdit, temporary:=True)
With ctlCBarCEdit

.Caption = "ControlEdit"
.Text = "Red"
.Style = msoComboLabel
.TooltipText = "Test Edit box"
.OnAction = "Project1.ThisOutlookSession.die_EditBox"

End With




Set icon = customBar.Controls.Add(Type:=msoControlButton, temporary:=True)
icon.Caption = "Button" '<-- mit Icon.ID´s hat Outlook Probleme - sind leer
icon.TooltipText = "Neues Icon"
icon.OnAction = "Project1.ThisOutlookSession.Meldung"



customBar.Visible = True

End Sub
Private Sub Application_Quit()

On Error Resume Next
Application.ActiveExplorer.CommandBars("Custom").Delete

End Sub

Sub Meldung()
Dim icon As CommandBarButton
Dim A As String
A = Application.ActiveExplorer.CommandBars("Custom").Controls("Button").Caption
MsgBox "ControlButton heißt " & A
End Sub
Sub Combo()
Dim ctlCBarCombo As CommandBarComboBox
Dim A As String
A = Application.ActiveExplorer.CommandBars("Custom").Controls("Combo Box").Text
MsgBox A & " steht da."
End Sub
Sub die_EditBox()
Dim ctlCBarCEdit As CommandBarControl
Dim A As String
A = Application.ActiveExplorer.CommandBars("Custom").Controls("ControlEdit").Text
MsgBox A & " steht in der EditBox."
End Sub
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Outlook & Mail
gelöst Outlook Kalender freigeben funktioniert nicht (1)

Frage von Zippo97 zum Thema Outlook & Mail ...

Exchange Server
Outlook 2010 i. V. m. Exchange 2007, "Senden als" funktioniert nicht (1)

Frage von departure69 zum Thema Exchange Server ...

Outlook & Mail
gelöst Outlook vba Email Anhang in Ordner speichern (3)

Frage von Daywalkercxp zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (31)

Frage von Maik82 zum Thema Linux Netzwerk ...

Exchange Server
gelöst Bestehende eMails autoamatisch weiterleiten (22)

Frage von metal-shot zum Thema Exchange Server ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...

Switche und Hubs
LAG zwischen SG300-Switches macht Probleme. Wer weiß Rat? (19)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...