2016-07-14 82 views
5

長時間の閲覧者、初めてのポスターです。 右クリック機能がうまく動作するフォームがあります。 メインの右クリックメニューにサブメニューを追加して、いくつかの機能/コマンドを分けようとしています。しかし、「Select Case」があるセクションを挿入する必要があります。ただし、そのセクションはトップメニューのみを表示しています。 ここからどこへ行くか不明です。どんな助けが素晴らしいだろうExcel VBA - カスタム右クリックメニューにサブメニューを追加します。

ありがとう:)

P.S.必要に応じてさらに説明していただければ幸いです。

Sub fzCopyPaste(iItems As Integer) 
On Error Resume Next 
CommandBars("Custom").Delete 
Set PopBar = CommandBars.Add(Name:="Custom", Position:=msoBarPopup, MenuBar:=False, Temporary:=True) 

は、「メインPopbarにtop_menuを追加します。この作品罰金

Set top_menu = PopBar.Controls.Add(Type:=msoControlButton) 
With top_menu 
    '.FaceId = 
    .Caption = "&Some Commands" 
End With 

は、トップメニュー に以下のサブメニュー(複数可)を挿入する必要があります。しかし、何も現れません:

動作しません
Select Case iItems 
Case 1 ' Copy and Paste 
    Set copy_button = top_menu.Controls.Add(Type:=msoControlButton) 
    With copy_button 
     .FaceId = 19 
     .Caption = "&Copy" 
     .Tag = "tCopy" 
     .OnAction = "fzCopyOne(true)" 
    End With 

    Set paste_button = top_menu.Controls.Add(Type:=msoControlButton) 
    With paste_button 
     .FaceId = 22 
     .Tag = "tPaste" 
     .Caption = "&Paste" 
     .OnAction = "fzCopyOne(true)" 
    End With 
Case 2 ' Paste Only 
    Set paste_button = top_menu.Controls.Add(Type:=msoControlButton) 
    With paste_button 
     .FaceId = 22 
     .Tag = "tPaste" 
     .Caption = "&Paste" 
     .OnAction = "fzCopyOne(true)" 
    End With 
End Select 

ここに下記の「エクストラトップmenue(S):この作品の罰金

Set paste_button = PopBar.Controls.Add(Type:=msoControlButton) 
    With paste_button 
     .FaceId = 22 
     .Tag = "tPaste" 
     .Caption = "Main POP BAR 2" 
     .OnAction = "fzCopyOne(true)" 
    End With 


PopBar.ShowPopup 

CommandBars("Custom").Delete 
End Sub 

答えて

2

Copy_ButtonmsoControlButtonに設定します。ボタンが必要な場合は、これが正しいです。メニューが必要なので、msoControlPopupに設定する必要があります。

Set Top_Menu = PopBar.Controls.Add(Type:=msoControlPopup) 
With Top_Menu 
    .Caption = "&Some Commands" 
    Set MySubMenu = .Controls.Add(Type:=msoControlPopup, before:=1, temporary:=True) 
    Select Case iItems 
     Case 1 
      With MySubMenu 
       .Caption = "Submenu Commands" 
       With .Controls.Add(Type:=msoControlButton, before:=1, temporary:=True) 
        .FaceId = 19 
        .Caption = "&Copy" 
        .Tag = "tCopy" 
        .OnAction = "fzCopyOne(true)" 
       End With 

       With .Controls.Add(Type:=msoControlButton, before:=2, temporary:=True) 
        .FaceId = 22 
        .Tag = "tPaste" 
        .Caption = "&Paste" 
        .OnAction = "fzCopyOne(true)" 
       End With 
      End With 
     Case 2 
      'etc 
    End Select 
End With 

"Top_Menu"セクション(最初の3行)を以下のように削除しました。余分なボタンを追加してから、目的のメニューを追加していました。

Set MySubMenu = PopBar.Controls.Add(Type:=msoControlPopup, before:=1, temporary:=True) 
With MySubMenu 
    .Caption = "&Some Commands" 
+0

ありがとうございました。私は編集をしましたが、ノン・ザ・レスでは素晴らしい作品です。 –

関連する問題