シート セット コンポーネントに確実にアクセスする(SSO)

VBA で Do While 文を使用することにより、シート セット コンポーネントに確実にアクセスすることができます。Do While 文の例は、Microsoft の VBA ヘルプに記載されています。Microsoft の VBA ヘルプは、VBA IDE の[ヘルプ]メニューから表示することができます。

Do While 文を使用してシート セット コンポーネントにアクセスするには、オブジェクトが使用可能かどうかを調べる Do While Not obj Is Nothing と同様の構文を使用します。たとえば、Do While Not obj Is Nothing 文を使用してコレクション内のオブジェクトを走査するには、次のコードを使用します。

Public Function FindAllComponents(comps As Collection) As Boolean
    On Local Error GoTo etrap
    If comps Is Nothing Then Set comps = New Collection
    Dim iter As IAcSmEnumPersist
    Set iter = m_db.GetEnumerator
    Dim obj As IAcSmPersist
    Set obj = iter.Next
    Do While Not obj Is Nothing
        If TypeOf obj Is IAcSmComponent Then
            Dim comp As IAcSmComponent
            Set comp = obj
            comps.Add comp
        End If
        Set obj = iter.Next
    Loop
    FindAllComponents = True
    Exit Function
etrap:
    MsgBox CStr(Err.Number) & " - " & Err.Description
End Function