Szia Jimmy!
Köszönöm a választ, megint tanultam tőled! :))
Ezt a 4 elemű tömböt én is nézegettem, de nem tudtam kiokoskodni, milyen adatokat is tárol. Végül megtaláltam a megoldást:
Sub szamol()
Dim Param1 As Integer, Param2 As String
Dim MenuCommand As CommandBarControl
Set MenuCommand = CommandBars.ActionControl
If Not TypeName(MenuCommand) = "CommandBarButton" Then Exit Sub
Param1 = MenuCommand.Tag
Param2 = MenuCommand.DescriptionText
...
A menü több szintes, minden szinten CommandBarControl objektumok szerepelnek. Azokat a menüpontokat, amelyek valamilyen feladatot hajtanak végre, vagyis amelyek meghívják a szamol() makrót, azokat msoControlButton típussal hoztam létre:
AlMenu(k).OnAction = "szamol"
AlMenu(k).DescriptionText = "..." 'Param2
AlMenu(k).Tag = "..." 'Param1
Azok a menüpontok, amelyekből almenü nyílik, azok msoControlPopup típusúak, és nincs .OnAction tulajdonságuk (pontosabban, ezt a tulajdonságát nem irányítottam a szamol() makróra).
Mikor a menüből meghívódik a 'szamol' makró, akkor a CommandBars.ActionControl tartalmazza azt a referenciát, amire szükségem van. Felvettem a 'szamol' makróban egy CommandBarControl típusú objektumot, ennek adtam át a CommandBars.ActionControl referenciát, és innentől kiolvashattam a korábban minden menüpontra egyedileg jellemző .DescriptionText és .Tag tulajdonságokat. Így már át tudok adni paramétereket a meghívott makrónak. Sőt, akár három paraméter is átadható, mert a .Parameter tulajdonság is használható.
Még egyszer köszönöm a segítséget!