این هم حالت داینامیک برای اشخاص خاص که در منو های مختلف popup های مختلفی لازمشون میشه
از این Model استفاده کنن
Option Explicit
Public Const Mname As String = "MyPopUpMenu"
Sub DeletePopUpMenu()
' Delete the popup menu if it already exists.
On Error Resume Next
Application.CommandBars(Mname).Delete
Application.CommandBars.Add Name:=Mname, Position:=msoBarPopup, _
MenuBar:=False, Temporary:=True
On Error GoTo 0
End Sub
Sub CreateDisplayPopUpMenu()
' Delete any existing popup menu.
' Create the popup menu.
'Call ADD_PopUpMenu
' Display the popup menu.
On Error Resume Next
Application.CommandBars(Mname).ShowPopup
On Error GoTo 0
End Sub
Sub ADD_PopUpMenu(iCaption As String, iFaceID As Integer, OnActionMacroName As String)
' Add the popup menu.
With Application.CommandBars(Mname)
' First, add two buttons to the menu.
With .Controls.Add(Type:=msoControlButton)
.Caption = iCaption
.FaceID = iFaceID
.OnAction = OnActionMacroName
End With
End With
End Sub
Sub TestMacro()
MsgBox "AbbasSediqi Say Hello"
End Sub
مثال برای فراخوانی
Private Sub Text2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
Call DeletePopUpMenu
ADD_PopUpMenu "AbbasSediqi Say", 59, "TestMacro"
ADD_PopUpMenu "Say Wath ?", 59, "TestMacro"
CreateDisplayPopUpMenu
End If
End Sub
نمونه فایل هم قرار دادم
انتقاد پیشنهاد فراموش نشه
یا حق