CALL MACRO from the new MENU that this creates

Libra Office 25.2.2.2
Calc
Macros in LO basic
Creating a MENU

How do I make the Menu-Item call a Macro ???

Blockquote

‘’‘REM ====== To remove menu: delete macro, then delete menu in Tools > Customize… ======’’’

‘’‘REM ====== YOUR ROOT BELOW ======’’’

const aDataRootFolder=“file:///home/Malte/Documents/”

‘’‘REM ====== YOUR ROOT ABOVE ======’’’

Sub InsertFavoritesMenu
ImplInsertFavoritesMenu( “com.sun.star.frame.StartModule” )
ImplInsertFavoritesMenu( “com.sun.star.text.TextDocument” )
ImplInsertFavoritesMenu( “com.sun.star.sheet.SpreadsheetDocument” )
ImplInsertFavoritesMenu( “com.sun.star.drawing.DrawingDocument” )
ImplInsertFavoritesMenu( “com.sun.star.presentation.PresentationDocument” )
End Sub

Sub ImplInsertFavoritesMenu( ModuleName as string )
sMenuBar = “private:resource/menubar/menubar”
sMyPopupMenuCmdId = “vnd.openoffice.org:FavoritesMenu”

oModuleCfgMgrSupplier = createUnoService("com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
oModuleCfgMgr = oModuleCfgMgrSupplier.getUIConfigurationManager( ModuleName )
oMenuBarSettings = oModuleCfgMgr.getSettings( sMenuBar, true )

bHasAlreadyPopupMenu = false
nCount = oMenuBarSettings.getCount()
for i = 0 to nCount-1
    oPopupMenu() = oMenuBarSettings.getByIndex( i )
    nPopupMenuCount = ubound(oPopupMenu())
    for j = 0 to nPopupMenuCount
        if oPopupMenu(j).Name = "CommandURL" then
            if oPopupMenu(j).Value = sMyPopupMenuCmdId then
                bHasAlreadyPopupMenu = true
            end if
        endif
    next j
next i

if not bHasAlreadyPopupMenu then
    sString = "Personal"
    oPopupMenu = ImplCreatePopupMenu( sMyPopupMenuCmdId, sString, oMenuBarSettings )
    oPopupMenuContainer = oPopupMenu(3).Value

    '''REM ====== YOUR CUSTOMIZATIONS BELOW ======'''

    'oMenuItem = ImplCreateMenuItem( aDataRootFolder+"ToDo.ods", "ToDo's" )
    oMenuItem = ImplCreateMenuItem( aDataRootFolder+"Msgbox", "Perform" )      
    oPopupMenuContainer.insertByIndex( oPopupMenuContainer.Count(), oMenuItem )
    'oMenuItem = ImplCreateMenuItem( aDataRootFolder+"ODF-Plugin ToDo's.ods", "ToDo's ODF Plugin" )
    'oPopupMenuContainer.insertByIndex( oPopupMenuContainer.Count(), oMenuItem )
    'oMenuItem = ImplCreateMenuItem( aDataRootFolder+"cws-tools-doc-short.odt", "CWS Tools" )
    'oPopupMenuContainer.insertByIndex( oPopupMenuContainer.Count(), oMenuItem )
   
    'oMenuItem = ImplCreateMenuSeparator()
    'oPopupMenuContainer.insertByIndex( oPopupMenuContainer.Count(), oMenuItem )
   
    'oMenuItem = ImplCreateMenuItem( aDataRootFolder+"Addresses.ods", "Addresses" )
    'oPopupMenuContainer.insertByIndex( oPopupMenuContainer.Count(), oMenuItem )
    'oMenuItem = ImplCreateMenuItem( aDataRootFolder+"Data.ods", "Data" )
    'oPopupMenuContainer.insertByIndex( oPopupMenuContainer.Count(), oMenuItem )

    '''REM ====== YOUR CUSTOMIZATIONS ABOVE ======'''

    oMenuBarSettings.insertByIndex( nCount, oPopupMenu )
    oModuleCfgMgr.replaceSettings( sMenuBar, oMenuBarSettings )
end if

End Sub

Function ImplCreatePopupMenu( CommandId, Label, Factory ) as Variant
Dim aPopupMenu(3) as new com.sun.star.beans.PropertyValue
aPopupMenu(0).Name = “CommandURL”
aPopupMenu(0).Value = CommandId
aPopupMenu(1).Name = “Label”
aPopupMenu(1).Value = Label
aPopupMenu(2).Name = “Type”
aPopupMenu(2).Value = 0
aPopupMenu(3).Name = “ItemDescriptorContainer”
aPopupMenu(3).Value = Factory.createInstanceWithContext( GetDefaultContext() )
ImplCreatePopupMenu = aPopupMenu()
End Function

Function ImplCreateMenuItem( Command as String, Label as String ) as Variant
Dim aMenuItem(2) as new com.sun.star.beans.PropertyValue
aMenuItem(0).Name = “CommandURL”
aMenuItem(0).Value = “.uno:Open?URL:string=” + Command + “&FrameName:string=_default”
aMenuItem(1).Name = “Label”
aMenuItem(1).Value = Label
aMenuItem(2).Name = “Type”
aMenuItem(2).Value = 0
ImplCreateMenuItem = aMenuItem()
End Function

Function ImplCreateMenuSeparator() as Variant
Dim aMenuItem(0) as new com.sun.star.beans.PropertyValue
aMenuItem(0).Name = “Type”
aMenuItem(0).Value = 1
ImplCreateMenuSeparator = aMenuItem()
End Function

Blockquote