What do you mean by open?
If you mean load it into memory, then nope. You have to do that.
If you mean display it to the user, then you can run the code without doing that.
I create a small userform with a single commandbutton on it.
This was the code that was behind that userform:
Option Explicit
Private Sub CommandButton1_Click()
MsgBox "hi"
End Sub
Then I created a subroutine in a general module that looked like:
Option Explicit
Sub testme()
Load UserForm1
UserForm1.CommandButton1.Value = True
Unload UserForm1
End Sub