Zaprogramowanie dostosowań na poziomie dokumentu

Po rozszerzeniu Microsoft Office Word lub Microsoft Office Excel dostosowania na poziomie dokumentu można wykonać następujące zadania:

  • Zautomatyzuj aplikację przy użyciu jej modelu obiektów.

  • Dodaj kontrolki na powierzchni dokumentu.

  • Wywołaj Visual Basic for Applications (VBA) w dokumencie z zestawu dostosowywania.

  • Wywołaj kod w zestawie dostosowywania z kodu VBA.

  • Zarządzaj pewnymi aspektami dokumentu, gdy znajduje się on na serwerze, na którym nie Microsoft Office zainstalowane.

  • Dostosowywanie interfejsu użytkownika aplikacji.

    **** Zastosowanie:- informacje przedstawione w tym temacie dotyczą projektów na poziomie dokumentu dla programów Excel i Word. Aby uzyskać więcej informacji, zobacz dostępność funkcji według aplikacji pakietu Office i typów projektów.

    Niektóre aspekty pisania kodu w projektach na poziomie dokumentu różnią się od innych typów projektów w Visual Studio. Wiele z tych różnic jest spowodowanych sposobem, w jaki Office obiektów są widoczne dla kodu zarządzanego. Aby uzyskać więcej informacji, zobacz Pisanie kodu w Office rozwiązaniach.

    Aby uzyskać ogólne informacje na temat dostosowań na poziomie dokumentu i innych typów rozwiązań, które można tworzyć przy użyciu narzędzi programistyczych usługi Office w programie Visual Studio, zobacz Office solutions development overview (VSTO).

Używanie wygenerowanych klas w projektach na poziomie dokumentu

Podczas tworzenia projektu na poziomie dokumentu program Visual Studio automatycznie generuje w projekcie klasę, która umożliwia rozpoczęcie pisania kodu. Visual Studio generuje różne klasy dla programu Word i Excel:

  • W projektach na poziomie dokumentu dla programu Word klasa jest ThisDocument wywoływana domyślnie.

  • Projekty na poziomie dokumentu dla Excel wiele wygenerowanych klas: jeden dla samego skoroszytu i jeden dla każdego arkusza. Domyślnie te klasy mają następujące nazwy:

    • ThisWorkbook

    • Sheet1

    • Sheet2

    • Sheet3

    Wygenerowana klasa zawiera procedury obsługi zdarzeń, które są wywoływane po otwarciu lub zamknięciu dokumentu. Aby uruchomić kod po otwarciu dokumentu, dodaj kod do procedury Startup obsługi zdarzeń. Aby uruchomić kod tuż przed zamknięciem dokumentu, dodaj kod do Shutdown procedury obsługi zdarzeń. Aby uzyskać więcej informacji, zobacz Zdarzenia w Office projektach.

Opis projektu wygenerowanych klas

W projektach, które są docelowe dla elementu lub , typy elementów hosta w są interfejsami, więc wygenerowane klasy nie mogą wyprowadzać z nich Program .NET Framework 4 .NET Framework 4.5 Visual Studio Tools for Office Runtime implementacji. Zamiast tego wygenerowane klasy wyprowadzają większość ich składowych z następujących klas bazowych:

  • ThisDocument: pochodzi od DocumentBase .

  • ThisWorkbook: pochodzi od WorkbookBase .

  • Sheetn: pochodzi od WorksheetBase .

    Te klasy bazowe przekierowują wszystkie wywołania do ich składowych do wewnętrznych implementacji odpowiednich interfejsów elementu hosta w Visual Studio Tools for Office Runtime . Jeśli na przykład wywołasz metodę klasy , klasa przekieruje to wywołanie do wewnętrznej implementacji Protect ThisDocument DocumentBase Document interfejsu w klasie Visual Studio Tools for Office Runtime .

Uzyskiwanie dostępu do modelu obiektów aplikacji hosta

Aby uzyskać dostęp do modelu obiektów aplikacji hosta, użyj elementów członkowskich wygenerowanej klasy w projekcie. Każda z tych klas odpowiada obiektowi w modelu obiektów programu Excel lub Word i zawiera większość tych samych właściwości, metod i zdarzeń. Na przykład klasa w projekcie na poziomie dokumentu dla programu Word udostępnia większość tych samych elementów członkowskich co obiekt ThisDocument w modelu obiektów programu Document Word.

W poniższym przykładzie kodu pokazano, jak za pomocą modelu obiektu programu Word zapisać dokument, który jest częścią dostosowania na poziomie dokumentu dla programu Word. Ten przykład jest przeznaczony do uruchamiania z ThisDocument klasy .

Me.Save()
this.Save();

Aby wykonać to samo spoza klasy , użyj obiektu , ThisDocument aby uzyskać dostęp do Globals ThisDocument klasy. Możesz na przykład dodać ten kod do pliku kodu okienka akcji, jeśli chcesz dołączyć przycisk Zapisz w interfejsie użytkownika okienka akcji.

Globals.ThisDocument.Save()
Globals.ThisDocument.Save();

Ponieważ klasa uzyskuje większość elementów członkowskich z elementu hosta, metoda wywoływana w tym kodzie jest tak naprawdę metodą ThisDocument Document elementu Save Save Document hosta. Ta metoda odpowiada Save metodzie obiektu w modelu obiektów Document word.

Aby uzyskać więcej informacji na temat używania modeli obiektów programu Word i Excel, zobacz Omówienie modelu obiektów Word i omówienie Excel modelu obiektów.

Aby uzyskać więcej informacji na temat Globals obiektu , zobacz Globalny dostęp do obiektów w Office projektach.

Dodawanie kontrolek do dokumentów

Aby dostosować interfejs użytkownika dokumentu, możesz dodać kontrolki Windows Formularze lub kontrolki hosta do powierzchni dokumentu. Łącząc różne zestawy kontrolek i pisząc kod, można powiązać kontrolki z danymi, zbierać informacje od użytkownika i reagować na akcje użytkownika.

Kontrolki hosta to klasy, które rozszerzają niektóre obiekty w programie Word i Excel modelu obiektów. Na przykład ListObject kontrolka hosta udostępnia wszystkie funkcje ListObject Excel. Jednak ListObject kontrolka hosta ma również dodatkowe zdarzenia i możliwości powiązania danych.

Aby uzyskać więcej informacji, zobacz Omówienie elementów hostów i kontrolek hosta oraz Windows formularzy w dokumentachOffice omówienie .

Łączenie dostosowań na poziomie dokumentu i VBA

Możesz użyć kodu VBA w dokumencie, który jest częścią dostosowania na poziomie dokumentu. Kod VBA można wywołać w dokumencie z zestawu dostosowywania, a także skonfigurować projekt tak, aby włączyć kod VBA w dokumencie, aby wywołać kod w zestawie dostosowywania.

Aby uzyskać więcej informacji, zobacz Łączenie dostosowań na poziomie dokumentu i VBA.

Zarządzanie dokumentami na serwerze

Na serwerze, który nie Microsoft Office ma zainstalowanego programu Word lub Microsoft Office Excel, można zarządzać kilkoma różnymi aspektami dostosowań na poziomie dokumentu. Na przykład możesz uzyskać dostęp do danych i zmodyfikować je w pamięci podręcznej danych dokumentu. Można również zarządzać zestawem dostosowywania skojarzonym z dokumentem. Na przykład można programowo usunąć zestaw z dokumentu, aby dokument nie uruchamiał już kodu, lub programowo dołączyć zestaw do dokumentu.

Aby uzyskać więcej informacji, zobacz Manage documents on a server by using the ServerDocument class (Zarządzanie dokumentami na serwerze przy użyciu klasy ServerDocument).

Dostosowywanie interfejsu użytkownika Microsoft Office aplikacji

Interfejs użytkownika programu Word i Excel można dostosować w następujący sposób przy użyciu dostosowania na poziomie dokumentu:

Uzyskiwanie rozszerzonych obiektów z obiektów Office w dostosowaniach na poziomie dokumentu

Wiele programów obsługi zdarzeń Office odbiera natywny obiekt Office, który reprezentuje skoroszyt, arkusz lub dokument, który zdjęł zdarzenie. W niektórych przypadkach możesz chcieć uruchomić kod tylko wtedy, gdy skoroszyt lub dokument w dostosowywaniu na poziomie dokumentu zdjęł zdarzenie. Na przykład w przypadku dostosowywania na poziomie dokumentu dla programu Excel można uruchomić kod, gdy użytkownik aktywuje jeden z arkuszy w dostosowanym skoroszycie, ale nie wtedy, gdy użytkownik aktywuje arkusz w innym skoroszycie, który jest otwarty w tym samym czasie.

Jeśli masz obiekt macierzysty Office, możesz sprawdzić, czy ten obiekt został rozszerzony na element hosta lub kontrolkę hosta w dostosowywaniu na poziomie dokumentu. Elementy hosta i kontrolki hosta to typy udostępniane przez obiekt , które dodają funkcje do obiektów, które istnieją natywnie w modelach obiektów programu Word lub Excel (nazywanych natywnymi Visual Studio Tools for Office Runtime obiektami Office ). Zbiorczo elementy hosta i kontrolki hosta są również nazywane obiektami rozszerzonymi. Aby uzyskać więcej informacji na temat elementów hosta i kontrolek hosta, zobacz Host items and host controls overview (Elementy hosta i kontrolki hosta — omówienie).

Opis metod GetVstoObject i HasVstoObject

Aby przetestować obiekt Office, użyj HasVstoObject metod i GetVstoObject w projekcie:

  • Użyj metody , jeśli chcesz określić, czy obiekt HasVstoObject macierzysty Office ma rozszerzony obiekt w dostosowywaniu. Ta metoda zwraca wartość true, jeśli obiekt Office ma obiekt rozszerzony, a w przeciwnym razie wartość false.

  • Użyj metody , jeśli chcesz uzyskać obiekt rozszerzony dla obiektu GetVstoObject natywnego Office obiekt. Ta metoda zwraca obiekt , , lub , jeśli określony obiekt ListObject Workbook Office ma taki Worksheet Document obiekt. W przeciwnym razie GetVstoObject zwraca wartość null. Na przykład metoda zwraca wartość , jeśli określony obiekt jest obiektem podstawowym GetVstoObject Document dokumentu w Document projekcie dokumentu programu Word.

    W projektach na poziomie dokumentu nie można użyć metody do utworzenia nowego elementu hosta , lub w GetVstoObject Workbook czasie Worksheet Document uruchamiania. Tej metody można używać tylko do uzyskiwania dostępu do istniejących elementów hosta, które są generowane w projekcie w czasie projektowania. Jeśli chcesz tworzyć nowe elementy hosta w czasie uruchamiania, musisz opracować VSTO projektu dodatku. Aby uzyskać więcej informacji, zobacz Programowe ograniczenia elementów hosta i kontrolek hosta oraz Rozszerzanie dokumentów programu Word i Excel skoroszytów w VSTO dodatków w czasie uruchamiania.

Używanie metod GetVstoObject i HasVstoObject

Aby wywołać metodę i , użyj metody lub i przekaż natywny obiekt word lub Excel (taki jak lub ), który HasVstoObject GetVstoObject chcesz Globals.Factory.GetVstoObject Globals.Factory.HasVstoObject Document Worksheet przetestować.

Zobacz też