Код статьи: 213489 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

При использовании Microsoft Excel в качестве объекта автоматизации OLE с помощью команды CreateObject надстройки, файлы, которые находятся в каталоге XLStart, и новые книги по умолчанию не загружаются.

Причина

Если попытаться загрузить надстройки и файлы, Excel отправляет сообщение вызывающему приложению (например, Visual Basic) о том, что программа не готова к ответу и предлагает повторить попытку позже. Вызывающее приложение может оказаться неспособно обработать этот запрос и продолжает выполнять остальные команды.

Временное решение

Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и не предоставляет явных или подразумеваемых гарантий относительно их пригодности для применения в пользовательских приложениях. Примеры в данной статье рассчитаны на пользователя, имеющего достаточный уровень знаний соответствующего языка программирования и необходимых средств разработки и отладки. Сотрудники службы поддержки Майкрософт могут объяснить возможности конкретной процедуры, но не будут изменять примеры для реализации дополнительных возможностей или удовлетворения требований конкретных пользователей.

Для загрузки файла надстройки при запуске Excel в качестве объекта автоматизации OLE загрузите надстройку вручную. Ниже приведены примеры использования этого метода.

Microsoft Office Excel 2007

Sub LoadAddin()

   ' Переменная измерения xl как тип объекта.
   Dim xl As Object

   ' Активация Microsoft Excel и назначение переменной xl.
   Set XL = CreateObject("Excel.Application")

   ' Открытие нужного файла надстройки, в данном случае — XLQUERY.XLAM.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLAM")

   ' Если требуется зарегистрировать функции и команды,
   ' содержащиеся в ресурсе (XLL), используйте метод RegisterXLL.
   ' В приведенном ниже примере все функции Analys32.xll
   ' зарегистрированы.
   ' XL.RegisterXLL "Analys32.xll"

   ' Запуск автоматических макросов, содержащихся в файле надстройки
   ' Автоматические макросы не запускаются при открытии файла
   ' с использованием метода Open.
   XL.Workbooks("xlquery.xlam").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

Microsoft Office Excel 2003 и более ранние версии Excel

Sub LoadAddin()

   ' Переменная измерения xl как тип объекта.
   Dim xl As Object

   ' Активация Microsoft Excel и назначение переменной xl.
   Set XL = CreateObject("Excel.Application")

   ' Открытие нужного файла надстройки, в данном случае — XLQUERY.XLA.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLA")

   ' Если требуется зарегистрировать функции и команды,
   ' содержащиеся в ресурсе (XLL), используйте метод RegisterXLL.
   ' В приведенном ниже примере все функции Analys32.xll
   ' зарегистрированы.
   ' XL.RegisterXLL "Analys32.xll"

   ' Запуск автоматических макросов, содержащихся в файле надстройки
   ' Автоматические макросы не запускаются при открытии файла
   ' с использованием метода Open.
   XL.Workbooks("xlquery.xla").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

Дополнительная информация

Поскольку Excel не загружает надстройки или файлы из каталога XLStart, если он был вызван в качестве объекта автоматизации OLE, пользователь получает полный контроль над процессом загрузки. Нужная надстройка может быть загружена вручную.

Этот способ также позволяет избежать ситуации, в которой загрузке Excel при вызове командой CreateObject препятствуют ошибки макросов, предупреждения о заблокированных файлах и файлах только для чтения. Другое преимущество способа заключается в том, что при его использовании загрузка Excel занимает меньше времени, чем при загрузке надстроек и файлов.

Ссылки

Дополнительные сведения о получении справки по работе с Visual Basic для приложений см. в следующей статье базы знаний Майкрософт:
226118 Список доступных справочных материалов по обучению программированию в среде Visual Basic для приложений (Эта ссылка может указывать на содержимое полностью или частично на английском языке)

Свойства

Код статьи: 213489 - Последний отзыв: 18 сентября 2011 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
Ключевые слова: 
kbautomation kbvba kbexpertiseinter kbdtacode kbprb kbprogramming KB213489

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com