Доброе время суток.
Сохраните созданные формы в коллекцию и обращайтесь по именам через неё.
[vba]Код
Public formCollection As Collection
Public Sub InitializeForms()
Set formCollection = New Collection
Load UserForm1
formCollection.Add UserForm1, UserForm1.Name
Load UserForm2
formCollection.Add UserForm2, UserForm2.Name
End Sub
Public Sub ShowFormByName(ByVal formName As String)
formCollection(formName).Show
End Sub
[/vba]
В формы только добавьте код, чтобы она не выгружалась, иначе будет сбой.
[vba]Код
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = True
Me.Hide
End Sub
[/vba]
P. S. А в общем-то можете объяснить - зачем такой подход?