Під час використання команди CreateObject у програмі Excel не завантажуються надбудови

Переклади статей Переклади статей
Номер статті: 213489 - Показ продуктів, яких стосується ця стаття.
Розгорнути все | Згорнути все

На цій сторінці

ОЗНАКИ

Під час отримання доступу до Microsoft Excel як до об’єкта автоматизації OLE за допомогою команди CreateObject надбудови розташовані в каталозі XLStart файли та нова книга за промовчанням не завантажуються.

ПРИЧИНА

Під час спроби завантажити надбудови та файли Excel надсилає повідомлення застосунку, що виконує виклик (наприклад, Visual Basic). Цей застосунок не готовий відповісти на запит і повторити спробу пізніше. Застосунку, що виконує виклик, можливо, не вдається обробити цей запит і виконати інші команди.

ОБХІДНИЙ ШЛЯХ

Корпорація Майкрософт надає приклади програмного коду тільки для ілюстрації без будь-яких гарантій, зокрема виражених або неявних. Це стосується, окрім іншого, будь-яких гарантій придатності для конкретного використання або до продажу. Приклади, наведені в цій статті, розраховано на користувачів, які мають достатній рівень знань відповідної мови програмування та необхідних засобів і процедур розробки й налагодження. Співробітники служби підтримки корпорації Майкрософт можуть пояснити можливості конкретної процедури. Проте вони не будуть змінювати приклади для реалізації додаткових можливостей або створювати процедури на вимогу окремих користувачів.

Щоб завантажити файл надбудови під час запуску програми Excel як об’єкта автоматизації OLE, це слід зробити вручну. Приклади такого способу наведено нижче.

Microsoft Office Excel 2007

Sub LoadAddin()

   ' Dimension variable xl as object type.
   Dim xl As Object

   ' Activate Microsoft Excel and assign to variable xl.
   Set XL = CreateObject("Excel.Application")

   ' Open the add-in file you want, in this example, XLQUERY.XLAM.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLAM")

   ' If you need to register the functions and commands
   ' contained in a resource (XLL), use the RegisterXLL method.
   ' In the example below, all functions of Analys32.xll are
   ' registered.
   ' XL.RegisterXLL "Analys32.xll"

   ' Run any auto macros contained in the add-in file
   ' Auto macros don't run when you open a file
   ' using the Open method.
   XL.Workbooks("xlquery.xlam").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

Microsoft Office Excel 2003 та попередні версії Excel

Sub LoadAddin()

   ' Dimension variable xl as object type.
   Dim xl As Object

   ' Activate Microsoft Excel and assign to variable xl.
   Set XL = CreateObject("Excel.Application")

   ' Open the add-in file you want, in this example, XLQUERY.XLA.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLA")

   ' If you need to register the functions and commands
   ' contained in a resource (XLL), use the RegisterXLL method.
   ' In the example below, all functions of Analys32.xll are
   ' registered.
   ' XL.RegisterXLL "Analys32.xll"

   ' Run any auto macros contained in the add-in file
   ' Auto macros don't run when you open a file
   ' using the Open method.
   XL.Workbooks("xlquery.xla").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

ДОДАТКОВІ ВІДОМОСТІ

Оскільки Excel під час запуску як об’єкта автоматизації OLE не завантажує надбудови або файли в каталозі XLStart, користувач зберігає повний контроль за процесом завантаження. Якщо потрібно завантажувати надбудову, це можна зробити вручну.

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

ПОСИЛАННЯ

Докладнішу інформацію про отримання допомоги з Visual Basic для застосунків див. у статті бази знань Майкрософт:
226118 Список ресурсів, які допоможуть у вивченні програмування Visual Basic для застосунків

Властивості

Номер статті: 213489 - Востаннє переглянуто: 18 вересня 2011 р. - Редакція: 2.0
ЗАСТОСОВУЄТЬСЯ ДО:
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 - стандартний випуск
  • Microsoft Excel 2000 - стандартний випуск
  • Microsoft Excel 97 - стандартний випуск
Ключові слова: 
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