FormのUnloadについて

POINT

  • vbModeless・・・閉じる処理をVBAから実行しても閉じれます。

  • vbModal・・・UserForm上に埋め込まれてるコントールからのみ、閉じる処理が可能

フォームから処理を実行して、自動終了するような場合は、vbModelessでFormを起動する必要がありあます。

'呼び出し元
Public Sub main()
 
    UserForm1.Show vbModeless
    
    Unload UserForm1

End Sub

'Formを開いて、MSGを出力しているだけ
Private Sub UserForm_Initialize()

    MsgBox "init"
    
    'ここでUnloadすると『オブジェクト変数または・・・』が発生
    'デバック自体は通るけど、多分実際に実行されるのが、呼び出し元のEnd Subのタイミングで実行されるので、
    '通っているように見えるんだと思われる。
'    Unload UserForm1
    
End Sub