Конвертировать начале-обязательный код для позднего связывания
Я часто писал код ранней привязки в VBA и VB6 для автоматизации офисных приложений (Word, Excel и т. д.), а затем переключал его на позднюю привязку для обработки нескольких версий этих приложений. Я пытаюсь сделать то же самое, но я автоматизирую приложение ESRI ArcMap GIS, и концепции, которые я использовал в прошлом, похоже, не переводятся.
Следующий код выполняется правильно:
Sub EarlyBinding()
Dim ArcMap As esriArcMapUI.MxDocument
Set ArcMap = GetObject("C:UsersMikeDownloadsAssessment Mapping.mxd", _
"esriArcMapUI.MxDocument")
Debug.Print ArcMap.Title
End Sub
Но этот код не работает с Объект не поддерживает это свойство или метод в строке Debug.Print
:
Sub LateBinding()
Dim ArcMap As Object
Set ArcMap = GetObject("C:UsersMikeDownloadsAssessment Mapping.mxd", _
"esriArcMapUI.MxDocument")
Debug.Print ArcMap.Title
End Sub
Есть ли что-то особенное в приложениях MS Office, что они поддерживают этот подход лучше, чем COM-серверы в целом? Или что-то особенное в приложениях ESRI, что они не поддерживают этот подход?