|
パッセンジャーさん
早速の御教授ありがとうございます。For Eachを使うのですね。
ということであれば、存在をチェックするfunctionを下記のように作って、
----- ここから -----
'現在開いているユーザーフォームの存在のチェック
'True=ユーザフォーム有り、False=ユーザフォーム無し
Function IsUserformOpen(strUserformName As Variant) As Boolean
Dim objUserform As Object
IsUserformOpen = False
'ユーザーフォームの一覧
For Each objUserform In UserForms
'大文字小文字を区別しない
If LCase(strUserformName) = LCase(objUserform.Name) Then
IsUserformOpen = True
Exit For
End If
Next
End Function
----- ここまで -----
コマンドボタンのルーチンの条件で使えるかと思ったのですが、
----- ここから -----
Private Sub CommandButton1_Click()
'画面を固定
Application.ScreenUpdating = False
If (IsUserformOpen(UserForm2.Name) = False) Then
UserForm1.Show vbModeless
End If
'画面固定を解除
Application.ScreenUpdating = True
End Sub
----- ここまで ----
型が違うと怒られてしまいます。
UserForm2.Nameの型がVariantじゃ駄目、と言われているような風なのですが、間違い等をご指摘頂ければ幸いです。
|
|