Результат: меню создаётся, макро вызыается, но почему-то MsgBox выполняется два раза, да и Workbooks.Add не срабатывает, как-будто его вообще не существует.
Ещё, файл я записывал и как .xls и .xla, но на резуьтат это ни как не влияет (.xla - предпологал, может меню надо создавать при загрузке EXCEL-а)
Большое спасибо. Пример прилагаю.
- Код: Выделить всё
Private Sub Workbook_Open()
For Each MenuName In MenuBars(xlWorksheet).Menus
If MenuName.Caption = "&Outils" Then
For Each SubMenuName In MenuBars(xlWorksheet).Menus("&Outils").MenuItems
If SubMenuName.Caption = "Tab" Then SubMenuName.Delete: Exit For
Next
Exit For
End If
Next
MenuBars(xlWorksheet).Menus("&Outils").MenuItems.AddMenu Caption:="Tab"
MenuBars(xlWorksheet).Menus("&Outils").MenuItems("Tab").MenuItems.AddMenu Caption:="EXE 1"
MenuBars(xlWorksheet).Menus("&Outils").MenuItems("Tab").MenuItems.AddMenu Caption:="EXE 2"
MenuBars(xlWorksheet).Menus("&Outils").MenuItems("Tab").MenuItems("EXE 1").MenuItems.AddMenu Caption:="PROJET 1"
MenuBars(xlWorksheet).Menus("&Outils").MenuItems("Tab").MenuItems("EXE 1").MenuItems.AddMenu Caption:="PROJET 2"
MenuBars(xlWorksheet).Menus("&Outils").MenuItems("Tab").MenuItems("EXE 1").MenuItems.AddMenu Caption:="PROJET 3"
MenuBars(xlWorksheet).Menus("&Outils").MenuItems("Tab").MenuItems("EXE 2").MenuItems.AddMenu Caption:="PROJET 1"
MenuBars(xlWorksheet).Menus("&Outils").MenuItems("Tab").MenuItems("EXE 2").MenuItems.AddMenu Caption:="PROJET 2"
MenuBars(xlWorksheet).Menus("&Outils").MenuItems("Tab").MenuItems("EXE 1").MenuItems("PROJET 1").MenuItems.Add Caption:="KIKI", OnAction:="Mac(" & """EXE 1 - PROJET1 - KIKI""" & ")"
MenuBars(xlWorksheet).Menus("&Outils").MenuItems("Tab").MenuItems("EXE 1").MenuItems("PROJET 1").MenuItems.Add Caption:="MIMI", OnAction:="Mac(" & """EXE 1 - PROJET1 - MIMI""" & ")"
MenuBars(xlWorksheet).Menus("&Outils").MenuItems("Tab").MenuItems("EXE 1").MenuItems("PROJET 2").MenuItems.Add Caption:="FIFI", OnAction:="Mac(" & """EXE 1 - PROJET2 - FIFI""" & ")"
End Sub
Private Function Mac(Variable)
MsgBox Variable
If Variable = "KIKI" Then Workbooks.Add
End Function