When referencing COM Automation collections late-bound, the enumeration via For Each does not automatically work. An explicitly cast or set to a variable of type IEnumerable will work, though:

Dim app As Object = ExcelDnaUtil.Application

Dim sh As Object
Dim flg As Boolean

For Each sh In CType(app.Worksheets, IEnumerable)
    ' Do stuff with sh here

This should not be needed if an interop library is referenced.