Prüfen Sie, ob ein CommandBarButton vorhanden ist
Ich bin mit dem folgenden in der ThisOutlookSession mein VbaProject.OTM-Datei hinzufügen 2 benutzerdefinierte Tasten, um die neue E-mail - Standard toolbar:
Dim outl As Object
Dim msg As Object
Set outl = CreateObject("Outlook.Application")
Set msg = outl.CreateItem(0)
msg.Display (False)
Dim objBar As Office.CommandBar
Dim objButton As Office.CommandBarButton
Set objBar = Application.ActiveWindow.CommandBars("Standard")
Set objButton = objBar.Controls.Add(msoControlButton)
With objButton
.caption = "button1"
.OnAction = "macro1"
.TooltipText = "Description"
.faceId = 487
.Style = msoButtonIconAndCaption
.BeginGroup = True
End With
Set objButton = objBar.Controls.Add(msoControlButton)
With objButton
.caption = "button2"
.OnAction = "macro2"
.TooltipText = "Description"
.faceId = 2525
.Style = msoButtonIconAndCaption
.BeginGroup = True
End With
msg.Close 1
Das problem ist, dass die buttons Hinzugefügt werden, jedes mal, wenn Outlook gestartet ist (was gebraucht wird für die anderen Computer, die ich bereit bin für die Bereitstellung der OTM-Datei). Gibt es eine Möglichkeit zu überprüfen, bevor Sie die Tasten, wenn es bereits existiert?
InformationsquelleAutor dnLL | 2013-01-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie Tasten ist ein Teil der
toolbar
. Daher überprüfen Sie für die Existenz der Symbolleiste.Oder versuchen Sie dies:
BEARBEITEN wie pro OP ' s Kommentar:
So let ' s stick, um den Fehler zu fangen... (ungetestete code, so können Sie haben, um es zu versuchen, in Ihrem Ende, für exakt die richtige syntax)
* Referenz: CommandBar-Steuerelemente
Ich denke, Sie sind besser dran mit einem neuen
toolbar
, da kann man wirklich fügen Sie diese beiden Tasten in und trash, wie Sie gehen 😉 (in der Hoffnung, dass es nicht zu viel für die front-end zu tragen, in Bezug auf Kontrollen/Elemente, die Sie laden, um es..) ich weiß wirklich nicht haben outlook im moment zu testen, Versuch und Irrtum, und ich war nur die Eingabe obigen Codes, basierend auf Logik/syntax;)
Was Sie tun können, ist zu versuchen, um den Fehler abzufangen als meine pro Bearbeiten. +1 für deinen Kommentar, Sie kam wirklich mit dem schnelleren Lösung, die Sie brauchen vielleicht. Lassen Sie mich wissen, wie es geht, nachdem Sie versuchen, dieerr
Controls.Element ermöglicht die übergabe der Kontrolle des namens (ein string). Wenn das Steuerelement mit diesem Namen gefunden, wird eine Ausnahme ausgelöst, die Sie abfangen können, und legen Sie Ihre control.
Danke, ich werde probieren morgen, sobald ich herausfinden, wie man erstellen Sie eine neue Symbolleiste.
Entschied sich für diese Lösung, mit
On Error Resume Next
und dannOn Error Goto 0
.InformationsquelleAutor bonCodigo