When I'm using the Microsoft Office VB Editor, looking in the Object Browser I can see a section that lists a set of classes and methods that can be invoked without qualifying with a class name or object:

They're all members of the Excel.Globals class, suggesting there's a class-level attribute that can be set - I was hoping that just defining a class as static would show any public static methods on there, but alas not.
In https://learn.microsoft.com/en-us/dotnet/visual-basic/programming-guide/com-interop/troubleshooting-interoperability it includes "Most COM objects are used by creating an instance of a COM class using the New keyword and then calling methods of the object. One exception to this rule involves COM objects that contain AppObj or GlobalMultiUse COM classes. Such classes resemble module level methods in Visual Basic .NET classes. Visual Basic 6.0 and earlier versions implicitly create instances of such objects for you the first time that you call one of their methods. For example, in Visual Basic 6.0 you can add a reference to the Microsoft DAO 3.6 Object Library and call the DBEngine method without first creating an instance".
I want to do the same with my own (C#) class, e.g. label it as "AppObj" or "GlobalMultiUse" such that it appears in that section and can thereby be invoked from VBA without first creating an object (instance) of that class?
If C# can't do it, can Visual Basic.Net?
I've tried various combinations of static and abstract classes and interfaces in c# and have a 'clean' COM typelib by making the assembly ComVisible=false and only the classes and interfaces I want to expose as ComVisible=true - but I can't work out what makes them appear in that list.
In .Net you must have classes marked as visible if you want to export their members:
That means members can't be exported on their own. Without doing extra steps like editing the IDL after you can't accomplish the task.