ユーザーが送信ボタンをクリックして操作が実行されたときに、VBAを使用してExcelユーザーフォームを閉じる必要があります。
ユーザーフォームをそれ自体から閉じるにはどうすればよいですか?
これを試しましたが、361エラーが返されます。
Unload Me
一番上の回答で指定されているように、ボタンコントロールの背後のコードで次のコードを使用しました。
Private Sub btnClose_Click()
Unload Me
End Sub
そうすることで、コントロールをアンロードしようとするのではなく、ボタンコントロールが存在するユーザーフォームをアンロードします。 「Me」キーワードは、ユーザーフォームのコントロールから呼び出された場合でも、ユーザーフォームオブジェクトを指します。この手法でエラーが発生する場合、いくつかの理由が考えられます。
間違った場所にコードを入力している可能性があります(別のモジュールなど)
古いバージョンのOfficeを使用している可能性があります。 Office 2013を使用しています。VBAは時間の経過とともに変化することに気付きました。
私の経験から、DoCmd ....メソッドの使用はMS Accessのマクロ機能により固有ですが、Excel VBAでは一般的に使用されません。
通常の(箱から出して)状態では、上記のコードは問題なく動作するはずです。
完全なコードを見ることなく、これを確実に答えることは不可能です。このエラーは通常、フォームではなくコントロールをアンロードしようとしたときに発生します。
括弧内に「私」がいないことを確認してください。
また、ユーザーフォームの完全なコードを投稿できる場合は、非常に役立ちます。
Unload Meは、userform selfから呼び出された場合にのみ機能します。別のモジュールコード(またはユーザーフォーム)からフォームを閉じる場合は、Unload関数+ userformtoclose名を使用する必要があります。
私はそれが助けてくれることを願っています