Ответ 1
tbone, то, что вы называете Strong Typing, называется "Раннее связывание".
К сожалению, одним из недостатков раннего связывания является то, что если у конечного пользователя нет такой же версии, как у вас, вы получите эти ошибки.
Если вы спросите меня, я предпочитаю Late Binding (где вы не создаете ссылки и не используете CreateObject для создания экземпляра)
Интересное чтение.
Тема: Использование раннего связывания и позднего связывания в Automation
Ссылка: http://support.microsoft.com/kb/245115
Мое предложение
Не отказывайтесь от раннего связывания, если вам это нравится из-за intellisense. Однако перед распространением приложения измените код на Latebinding. Не так уж много различий в том, как вы кодируете раннее связывание и позднюю привязку.
Вот пример
Ранняя привязка
'~~> Set reference to Excel Object Library
Sub Sample()
Dim oXLApp As Excel.Application
Dim oXLBook As Excel.Workbook
Dim oXLSheet As Excel.Worksheet
'~~> Create a new instance of Excel
Set oXLApp = New Excel.Application
'~~> Add a new workbook
Set oXLBook = oXLApp.Workbooks.Add
Set oXLSheet = oXLBook.Worksheets(1)
'
'~~> Rest of the code
'
End Sub
Поздняя привязка
'~~> Doesn't require a reference to Excel Object Library
Sub Sample()
Dim oXLApp As Object
Dim oXLBook As Object
Dim oXLSheet As Object
'~~> Create a new instance of Excel
Set oXLApp = CreateObject("Excel.Application")
'~~> Add a new workbook
Set oXLBook = oXLApp.Workbooks.Add
Set oXLSheet = oXLBook.Worksheets(1)
'
'~~> Rest of the code
'
End Sub
НТН
Сид