2016-03-30 7 views
0

私はヘルプメニューの後にOutlookのメニューに追加したい2つのメニューボタンがあります。私は、ボタンを追加するコードを作ったが、2つのメニューボタンが既に存在していても、Outlookを再オープンするたびに2つのボタンが追加される。どんな助けも歓迎されます。Outlookのカスタムメニューボタン

Function ToolBarExists(strName As String) As Boolean 
Dim tlbar As commandBar 
    For Each tlbar In ActiveExplorer.CommandBars 
    If tlbar.Name = strName Then 
     ToolBarExists = True 
     Exit For 
    End If 
Next tlbar 
End Function 

Sub TBarExistsbutton1() 
    If ToolBarExists("button1") Then 
     If ActiveExplorer.CommandBars("button1").Visible = True Then 
      ActiveExplorer.CommandBars("button1").Visible = False 
     Else 
      ActiveExplorer.CommandBars("button1").Visible = True 
     End If 
    Else 
     Call a123 
    End If 

End Sub 
Sub TBarExistsbutton2() 
    If ToolBarExists("button2") Then 
     If ActiveExplorer.CommandBars("button2").Visible = True Then 
      ActiveExplorer.CommandBars("button2").Visible = False 
     Else 
      ActiveExplorer.CommandBars("button2").Visible = True 
     End If 
    Else 
     Call a1234 
    End If 
    End Sub 

Sub a123() 
Dim outl As Object 
Dim msg As Object 
Set outl = CreateObject("Outlook.Application") 
Dim objBar As Office.commandBar 
Dim objButton As Office.commandBarButton 
Set objBar = Application.ActiveWindow.CommandBars("Menu Bar") 
Set objButton = objBar.Controls.Add(msoControlButton) 
    With objButton 
    .caption = "button1" 
    .onAction = "macro1" 
    .faceId = 487 
    .Style = msoButtonIconAndCaption 
End With 
End Sub 

Sub a1234() 
Dim outl As Object 
Dim msg As Object 
Set outl = CreateObject("Outlook.Application") 
Dim objBar As Office.commandBar 
Dim objButton As Office.commandBarButton 
Set objBar = Application.ActiveWindow.CommandBars("Menu Bar") 
Set objButton = objBar.Controls.Add(msoControlButton) 
With objButton 
    .caption = "button2" 
    .onAction = "macro2" 
    .faceId = 487 
    .Style = msoButtonIconAndCaption 
End With 
End Sub 
+0

いつ関数ToolBarExists(strName As String)をBooleanとして使用しますか? – niton

+0

こんにちは、その機能は、既存のツールバーをチェックする必要があり、私は約10です。それはツールバーの名前でチェックする必要があります。 – wittman

答えて

0

Outlook 2010の場合:表示可能な場合は、同様の方法で組み込みます。

Option Explicit 

Sub TBarExistsbutton1() 

    Dim cbControlCount As Long 
    Dim button1Found As Boolean 
    Dim j As Long 

    If ToolBarExists("Menu Bar") Then 

     cbControlCount = ActiveWindow.CommandBars("Menu Bar").Controls.count 
     Debug.Print " There are " & cbControlCount & " controls in " & "Menu Bar" 

     For j = 1 To cbControlCount 
      Debug.Print ActiveWindow.CommandBars("Menu Bar").Controls(j).Caption 
      If ActiveWindow.CommandBars("Menu Bar").Controls(j).Caption = "button1" Then 
       button1Found = True 
       Exit For 
      End If 
     Next j 

     If button1Found = False Then a123 

    Else 
     Debug.Print "Menu Bar does not exist." 
     a123 

    End If 

End Sub