プロが教える店舗&オフィスのセキュリティ対策術

MsgBox " 全問 終わったよ! お疲れ様でした (* ´?`)ノ♪"、の後に複数(14個)のユーザーフォームを自動で閉じたいです。初心者ですが、どうかご教示お願い致します。

Private Sub CommandButton1_Click()

Dim UserFrom As Integer
Dim UserFrom14

If ComboBox1.Value = "に" And ComboBox2.Value = "られる" Then
MsgBox "正解!(*´?`*ノノ゙パチパチ"
Else
MsgBox "ちがうよ。"
End If

If UserFrom14 = 0 Then
MsgBox " 全問 終わったよ! お疲れ様でした (* ´?`)ノ♪"
Unload UserForm1
End If

End Sub

「Excel VBA ユーザーフォーム 複」の質問画像

A 回答 (2件)

こんにちは。



直接の回答ではありませんが、
ユーザーフォームを14個も開いている理由は何かあるのでしょうか?
通常は1つのユーザーフォームで処理が終わったら、そのユーザーフォーム
を閉じて、必要に応じて、次のユーザーフォームを開くというのが一般的に
良いかと思います。
中には、ユーザーフォーム同士で処理する事もあるかも知れませんが、
その様な処理はかなり少数だと思いましたので。
処理フローを見直した方が良いかと思いました。

一応、検索した記事を載せておきます。
●開いているすべてのユーザーフォームを閉じる方法
https://officedic.com/excel-vba-userforms-unload/
    • good
    • 1
この回答へのお礼

あっ。おっしゃる通りです。ご回答ありがとうございました!

お礼日時:2022/04/27 12:22

こんにちは


すべてのユーザーフォームなら
If UserFrom14 = 0 Then
MsgBox " 全問 終わったよ! お疲れ様でした (* ´?`)ノ♪"

Dim uFrm As Object
For Each uFrm In UserForms
Unload uFrm
Next

End If
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
Unload uFrmにデバッグが出るのですが、頑張ります。
ありがとうございました。

お礼日時:2022/04/27 12:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています