1

コレクションを使用してTypeの変数を格納していSubFormますが、オブジェクトを取得しようとすると、Typeの変数になりますControls。誰かがこれがなぜであるか教えてもらえますか?

For Each ctl In Me.controls
        Select Case ctl.ControlType
            Case acSubform
                Debug.Print "subform: " & TypeName(ctl)
                If (ctl.Name = "a" Or ctl.Name = "b") Then
                    frmCollection.Add (ctl)
                End If
        End Select
Next

For Each frm In frmCollection
    Debug.Print "Control: " & TypeName(frm)
Next
4

1 に答える 1

3

サブフォームは一種のコントロールです。コンテキストに基づいてTypeName()、一般的なタイプまたは特定のタイプのいずれかを返すようですが、それがどのようにその選択を行うのかわかりません。

ただし、サブフォームであるTypeOfかどうかを判断するのに役立つ場合がありますfrm

For Each frm In frmCollection
    If TypeOf frm Is SubForm Then
        Debug.Print "Control is a subform"
    Else
        Debug.Print "Control is not a subform"
    End If
Next
于 2012-11-16T17:21:53.797 に答える