I have created a VBA program that performs some calculations on the current worksheet. The User Form has several text fields, check boxes, combo boxes and buttons that require the user's input to direct the program on what columns/calculations need to be performed.

What I would like to do now, is figure out a way to have a new button added to the top Add-Ins ribbon such that when it's pressed, the User Form opens for the user to enter the data, and when the "Calculate" button I have is pressed, it performs the actions on the current worksheet. ChatGPT just sucks too much to figure it out for me after a few hours of trying so I figured I'd come here to the pros!

The file is currently in .XLSM format, and the code only has 1 user form with all of the code for it in it (I'll refrain from posting the entire code just yet as I don't think it's relevant to my question anyway, but if the code is needed just say so). I'd like the user form to appear when I press a newly made ribbon button from ANY excel file that I open.

I am running Excel 365 from Windows 10. If someone can try to do something similar on their end and detail step by step what needs to happen and let me know? This is my first time trying to make a custom Add-In. Some things I've tried so far, but to no avail (unless I wasn't doing the steps correctly) were:

1. Save a copy of the .XLSM file as a .XLAM file in the Excel Add-Ins folder
2. Change the .XLAM file extension to a .ZIP file, add a new "customUI" folder inside, and add in a .RELS file with some code in it
3. Close the .ZIP file and change it back to a .XLAM
4. Enable the add-in through the options menu and it should just "appear" in the ribbon somewhere (it didn't).

Other similar attempts were tried, including adding an OnWorkbookOpen event listener to the code, making a reference to the RibbonsCallback (which was a nightmare in and of itself as the Microsoft Office XX.XX Objects Library isn't even in the References table anywhere), etc. So I need some detailed steps to figure this out.

Thanks!