I had the reference to the "Microsoft Excel 16.0 Object Library" turned on before, so that wasn't the issue. I downloaded your latest zip file, and loaded the project. It created a new Project called "Mtec", and contained one UserForm spec named "Frm_TestExcel' and one regular module named "ExcelTest". When I ran the Macro (which is the regular module code), it ran perfectly, as expected. It started a new instance of Excel, created a new workbook, filled in the first three column headers, and auto-fit the columns. However, that macro does not launch your custom UserForm. I believe your intentions were to launch the UserForm first, then when the user clicks the "CommandButton1", you want that to cause the code to run that creates the Excel file. To make this happen, I believe you need a regular module (macro) that just launches the form, then move most (if not all) of the code from your existing regular module (macro) over into that form spec, as the (what to do) reaction to the event of clicking on that button.
When I look at the code within your UserForm spec, it reads much like a regular module's/macro's code, instead of a UserForm specification. The UserForm's code should define the specifications of the form itself, and each of the "Controls" within it, and which "events" you want to watch for in relation to those form controls, and what actions to take in response to those events.
I'm not sure if any of this will help you with your base problem of Excel suddenly not launching correctly for you when working with a different combination of Inventor and Excel releases, but If you want to continue to try to use VBA to achieve this instead of iLogic, I will try to help you get this whole UserForm and Macro situation figured out.
I created another regular module to use as the Macro to launch your UserForm within your VBA Project. I changed the name of the module to "Show_Frm_TestExcel", and put the following code within it:
Sub Show_Frm_TestExcel()
'Show/Launch the UserForm named "Frm_TestExcel"
Frm_TestExcel.Show
End Sub
Now, when I run this new macro, it launches your UserForm, then awaits my interaction with it. If my Excel application is currently closed, and I click the "CommandButton1" button, and just wait without doing anything else at all for a while, a message will pop-up saying "GetObject still failing. Process ended.". I could see that it opened Excel and there was a workbook open within it (minimized in the taskbar only), and after clicking the message away, I checked the workbook and there was no contents written to it. However, when I try this process again, but this time click around on my screen after clicking the button, it then starts Excel and shows a message box saying "File not found", and there are two workbooks open within it. One is blank and the other says "Writing works" within cell A1. Is this the odd behavior you were inquiring about? Please note that this reaction from Excel was entirely defined within the UserForm specification's code, and didn't actually run the other standalone macro's code at all. This is what I was talking about earlier.
I'm going to point you to a post I created a while back that shows you how to completely design and use a very simple Windows Form and how to set up event listeners for it, and how to tell it what to do when those events happen. This is all contained within a single iLogic rule (VB.NET code). Just run the rule, it shows the form, when you interact with the form, it reacts to your interactions with messages, letting you know it works. Here's the link to the post: https://knowledge.autodesk.com/community/article/328361
VBA and VB.NET are very similar in some aspects, and both descended from and use the Visual Basic coding language. So most of the code within should be able to translate to your VBA UserForm's code. Or at least give you a much better understanding of how to set it all up. Test this out. Look it over thoroughly. And see if it helps you out.
Wesley Crihfield

(Not an Autodesk Employee)