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