Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 8428 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 ..
Ähnliche Inhalte
Windows Installation
Libreoffice nach installation keine menüleiste (6)

Frage von oskarmader zum Thema Windows Installation ...

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

Frage von Daywalkercxp zum Thema Outlook & Mail ...

VB for Applications
Vba Outlook Betreff Datum - Absender - Empfänger (7)

Frage von Romy0907 zum Thema VB for Applications ...

Neue Wissensbeiträge
Sicherheit

Millionen Euro in den Sand gesetzt?

(1)

Information von transocean zum Thema Sicherheit ...

Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(10)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Heiß diskutierte Inhalte
Humor (lol)
gelöst Freidach Beitrag (40)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Windows 7
gelöst SSD - Win7 Lags (20)

Frage von ph5555 zum Thema Windows 7 ...

Firewall
gelöst Firewall Firmeneimsatz (20)

Frage von wiesi200 zum Thema Firewall ...