現在、私はExcelマクロをプログラミング中です。マクロはUserformを表示します。 ユーザーフォームで、ユーザーは何かを選択できます。ユーザーが何かを選択した後、私はUserform.Hideを呼び出してUserformを非表示にし、フォームから選択を読み込みます。選択が読み込まれた後、私はUnload Userformを呼び出します。今度はコードが選択と対話します。私はループでこれをやりたいのですが、コードがユーザーフォームを2回目に表示しようとするときです。 Formがすでに表示されているという例外があります。私はそれを理解することができません。私はデバッグモードでそれを行うとき、それはすべきだといつも動作します。私は、誰かが私をここに助けることができるループVBA Userforms同じユーザーフォームを何度も何度も表示する
Sub Costum(Spalte As Integer, Zeile As Integer, SpalteBeginn As Integer, Cards As Cards, CardsOpponent As Cards)
CardSelector.CardSelector_Activate Cards
Dim c As card
Dim number As Integer
number = CardSelector.SelectedNumber
Set c = Cards.CardDictionary.Items(CardSelector.SelectedNumber - 1)
SetCardAsPlaced c, Zeile, Spalte, SpalteBeginn
Unload CardSelector
End Sub
でこれを呼び出すClassModuleで
ユーザーフォームのコード
Private Sub Image1_Click()
SelectCard 1
End Sub
Private Sub Image2_Click()
SelectCard 2
End Sub
Private Sub SelectCard(number As Integer)
SelectedNumber = number
Me.Hide
End Sub
Public Sub CardSelector_Activate(Cards As Cards)
Dim c As card
For Each Key In Cards.CardDictionary.Keys
Set c = Cards.CardDictionary.Items(Key - 1)
If c.value = 1 And c.played Then
Image1.Enabled = False
End If
If c.value = 2 And c.played Then
Image2.Enabled = False
End If
Next Key
number = SelectedNumber
CardSelector.Show
End Sub
コード?
私たちはあなたのコードを見て、何が起こっているのかを知る必要があります。 –
あなたが書いた質問 – Lukas
に「_私はUserFormをアンロードします」という質問に追加しました。つまり、アンロードするuserformは実際には「Userform」の名前になっていますか? – user3598756