Some things you do when designing forms inherently reset the VBA environment. This takes all your existing object variables in that form and resets them.
That’s why I often use a function to refer to an object to check to make sure it exists before I use it so I don’t get an error.
So you can see in the above code example, I have a function called Acct() that returns the InternalAccount object, but checks to make sure it is set first. This will also help in other instances if the user’s VBA session gets reset for some reason.
I use this technique a lot. I still get the autocomplete for the AccountInterface class when using the Acct function because that’s what it returns.