Позднее связывание означает просто «разрешено во время выполнения».
Когда вы объявляете что-то As Word.Document
, вы разрешаете типы во время компиляции, т.е. раннее связывание: вы знаете, что вызов члена связан с поздним связыванием, когда вы набираете точку .
, и раскрывающийся список intellisense отсутствует.
Объявите объекты As Object
или As Variant
, и компилятор не будет знать, какие типы использовать до времени выполнения, и, таким образом, у вас будет позднее связывание.
Со всеми объявлениями с поздним связыванием вы можете затем удалить ссылку на библиотеку типов ... но прежде чем вы сделаете это, я настоятельно рекомендую вам убедиться, что Option Explicit
указан в каждом модуле, потому что любая константа или перечисление определены в этой библиотеке типов больше не будет определяться и НЕ будет магически разрешаться во время выполнения - например, если вы используете olFolderInbox
в любом месте, вам нужно заменить его на свою собственную константу, например, Const olFolderInbox = 6
, иначе Outlook.olFolderInbox
не будет разрешен без ссылки на библиотеку типов Outlook, и у вас будет ошибка компиляции.
Без Option Explicit
, вместо ошибки компиляции, вы будете olFolderInbox
тихо "объявлены" во время выполнения как неявное на лету Variant
со значением Empty
, что будет тихо конвертируйте в 0
везде, где вы его используете, что может привести к довольно трудным для диагностики проблемам.