Numer ID artykułu: 213489 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Symptomy

W przypadku uzyskiwania dostępu do programu Microsoft Excel jako do obiektu usługi Automatyzacja OLE przy użyciu polecenia CreateObject dodatki, pliki znajdujące się w katalogu XLStart i domyślny nowy skoroszyt nie są ładowane.

Przyczyna

Podczas próby załadowania dodatków i plików program Excel wysyła komunikat do aplikacji wywołującej, takiej jak Visual Basic, z informacją, że nie jest gotowy do odpowiadania na żądanie i że należy podjąć próbę później. Może się zdarzyć, że aplikacja wywołująca nie obsłuży tego żądania i nie będzie mogła kontynuować wykonywania pozostałych poleceń.

Obejście problemu

Firma Microsoft podaje przykłady programowania wyłącznie do celów informacyjnych, bez jakichkolwiek gwarancji wyrażonych wprost lub domyślnie. Dotyczy to także, ale nie ograniczając się do tego zapisu, gwarancji przydatności handlowej lub do określonego celu. W tym artykule zakłada się, że czytelnik zna prezentowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Pracownicy pomocy technicznej firmy Microsoft mogą służyć pomocą, wyjaśniając funkcję konkretnej procedury. Nie będą jednak modyfikować tych przykładów ani dodawać żadnej funkcji i konstruować nowych procedur w celu dostosowania ich do konkretnych potrzeb użytkownika.

W celu załadowania pliku dodatku w przypadku, gdy program Excel jest uruchamiany jako obiekt usługi Automatyzacja OLE, należy załadować ten plik ręcznie. Poniżej podano przykłady zastosowania tej metody.

Microsoft Office Excel 2007

Sub LoadAddin()

   ' Zmienna Dim xl jako typ obiektu.
   Dim xl As Object

   ' Należy aktywować program Microsoft Excel i przypisać zmienną xl.
   Set XL = CreateObject("Excel.Application")

   ' Należy otworzyć odpowiedni plik dodatku, w tym przykładzie plik XLQUERY.XLAM.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLAM")

   ' Jeśli jest konieczne zarejestrowanie funkcji i poleceń
   ' zawartych w zasobie (XLL), należy użyć metody RegisterXLL.
   ' W poniższym przykładzie wszystkie funkcje zasobu Analys32.xll są
   ' zarejestrowane.
   ' XL.RegisterXLL "Analys32.xll"

   ' Należy uruchomić wszelkie makra automatyczne zawarte w pliku dodatku.
   ' Makra automatyczne nie są uruchamiane, gdy plik jest otwierany
   ' przy użyciu metody Open.
   XL.Workbooks("xlquery.xlam").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

Microsoft Office Excel 2003 i wcześniejsze wersje programu Excel

Sub LoadAddin()

   ' Zmienna Dim xl jako typ obiektu.
   Dim xl As Object

   ' Należy aktywować program Microsoft Excel i przypisać zmienną xl.
   Set XL = CreateObject("Excel.Application")

   ' Należy otworzyć odpowiedni plik dodatku, w tym przykładzie plik XLQUERY.XLA.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLA")

   ' Jeśli jest konieczne zarejestrowanie funkcji i poleceń
   ' zawartych w zasobie (XLL), należy użyć metody RegisterXLL.
   ' W poniższym przykładzie wszystkie funkcje zasobu Analys32.xll są
   ' zarejestrowane.
   ' XL.RegisterXLL "Analys32.xll"

   ' Należy uruchomić wszelkie makra automatyczne zawarte w pliku dodatku.
   ' Makra automatyczne nie są uruchamiane, gdy plik jest otwierany
   ' przy użyciu metody Open.
   XL.Workbooks("xlquery.xla").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

Więcej informacji

W związku z tym, że program Excel wywoływany jako obiekt usługi Automatyzacja OLE nie ładuje dodatków ani plików do katalogu XLStart, kontrolę nad procesem ładowania przejmuje użytkownik. Jeśli dany dodatek ma zostać załadowany, należy to zrobić ręcznie.

To zachowanie oznacza również, że żadne błędy makr, alerty o zablokowanych plikach ani plikach tylko do odczytu nie uniemożliwią ładowania programu Excel wywoływanego za pomocą polecenia CreateObject. Inną zaletą tego zachowania jest krótszy czas ładowania programu Excel niż w sytuacji, gdy najpierw są ładowane dodatki lub pliki.

Materiały referencyjne

Aby dowiedzieć się więcej na temat sposobów uzyskiwania pomocy związanej z programem Visual Basic for Applications, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
226118 Lista dostępnych zasobów ułatwiających naukę programowania w języku Visual Basic for Applications (j. ang.)

Właściwości

Numer ID artykułu: 213489 - Ostatnia weryfikacja: 18 września 2011 - Weryfikacja: 2.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
Słowa kluczowe: 
kbautomation kbvba kbexpertiseinter kbdtacode kbprb kbprogramming KB213489

Przekaż opinię

 

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