as soon as you reference Userform1 in your code, if it isn't loaded, it gets
loaded. So Johns code would always show it is loaded.
You can check the userforms collection
Sub tester4()
Dim bLoaded as boolean
Dim frm
'Load UserForm1
For Each frm In UserForms
If UCase(frm.Name) = UCase("UserForm1") Then
MsgBox "Userform1 is loaded"
bLoaded = True
Exit For
End If
Next
If Not bLoaded Then
MsgBox "Userform1 is not loaded"
End If
End Sub
Run as is, then
Uncomment Load UserForm1