Dostosowania na poziomie dokumentu programu

Po rozszerzeniu programu Microsoft Office Word lub Microsoft Office Excel przy użyciu dostosowywania na poziomie dokumentu można wykonać następujące zadania:

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

  • Dodaj kontrolki na powierzchni dokumentu.

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

  • Wywołaj kod w zestawie dostosowywania z języka VBA.

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

  • Dostosuj interfejs użytkownika aplikacji.

    Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu dla programów Excel i Word. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.

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

    Aby uzyskać ogólne informacje na temat dostosowywania na poziomie dokumentu i innych typów rozwiązań, które można utworzyć przy użyciu narzędzi deweloperskich pakietu Office w programie Visual Studio, zobacz Omówienie programowania rozwiązań pakietu Office (VSTO).

Używanie wygenerowanych klas w projektach na poziomie dokumentu

Podczas tworzenia projektu na poziomie dokumentu program Visual Studio automatycznie generuje klasę w projekcie, której można użyć do rozpoczęcia pisania kodu. Program Visual Studio generuje różne klasy dla programów Word i Excel:

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

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

    • ThisWorkbook

    • Sheet1

    • Sheet2

    • Sheet3

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

Omówienie projektowania wygenerowanych klas

W projektach przeznaczonych dla programu .NET Framework 4 lub .NET Framework 4.5 typy elementów hosta w środowisku uruchomieniowym Visual Studio Tools dla pakietu Office są interfejsami, więc wygenerowane klasy nie mogą uzyskiwać ich implementacji. Zamiast tego wygenerowane klasy pochodzą z większości elementów członkowskich z następujących klas bazowych:

  • ThisDocument: pochodzi z klasy DocumentBase.

  • ThisWorkbook: pochodzi z klasy WorkbookBase.

  • Sheetn: pochodzi z .WorksheetBase

    Te klasy podstawowe przekierowują wszystkie wywołania do elementów członkowskich do wewnętrznych implementacji odpowiednich interfejsów elementów hosta w środowisku uruchomieniowym Visual Studio Tools dla pakietu Office . Jeśli na przykład wywołasz metodę ProtectThisDocument klasy, DocumentBase klasa przekierowuje to wywołanie do wewnętrznej implementacji Document interfejsu w środowisku uruchomieniowym Visual Studio Tools dla pakietu Office .

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 ThisDocument klasa w projekcie na poziomie dokumentu dla programu Word zawiera większość elementów członkowskich co Document obiekt w modelu obiektów programu Word.

W poniższym przykładzie kodu pokazano, jak używać modelu obiektów programu Word do zapisywania dokumentu będącego częścią dostosowywania na poziomie dokumentu dla programu Word. Ten przykład ma zostać uruchomiony z ThisDocument klasy .

this.Save();

Aby wykonać to samo spoza ThisDocument klasy, użyj Globals obiektu , aby uzyskać dostęp do 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();

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

Aby uzyskać więcej informacji na temat korzystania z modeli obiektów programów Word i Excel, zobacz Omówienie modelu obiektów programu Word i Omówienie modelu obiektów programu Excel.

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

Dodawanie kontrolek do dokumentów

Aby dostosować interfejs użytkownika dokumentu, możesz dodać kontrolki lub kontrolki hosta formularzy systemu Windows 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 modelu obiektów programów Word i Excel. Na przykład kontrolka ListObject hosta zapewnia wszystkie funkcje ListObject w programie Excel. Jednak kontrolka ListObject hosta ma również dodatkowe zdarzenia i możliwości powiązania danych.

Aby uzyskać więcej informacji, zobacz Omówienie elementów hosta i kontrolek hostów oraz Kontrolek formularzy systemu Windows w dokumentach pakietu Office.

Łączenie dostosowań na poziomie dokumentu i VBA

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

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

Zarządzanie dokumentami na serwerze

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

Aby uzyskać więcej informacji, zobacz Zarządzanie dokumentami na serwerze przy użyciu klasy ServerDocument.

Dostosowywanie interfejsu użytkownika aplikacja pakietu Office lications firmy Microsoft

Interfejs użytkownika programów Word i Excel można dostosować w następujący sposób, korzystając z dostosowywania na poziomie dokumentu:

Pobieranie obiektów rozszerzonych z natywnych obiektów pakietu Office w dostosowaniach na poziomie dokumentu

Wiele programów obsługi zdarzeń dla zdarzeń pakietu Office odbiera natywny obiekt pakietu Office reprezentujący skoroszyt, arkusz lub dokument, który wywołał zdarzenie. W niektórych przypadkach możesz chcieć uruchomić kod tylko wtedy, gdy skoroszyt lub dokument w dostosowaniu na poziomie dokumentu wzbudził zdarzenie. Na przykład w dostosowywaniu na poziomie dokumentu dla programu Excel możesz 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 ma być otwarty w tym samym czasie.

Jeśli masz natywny obiekt pakietu Office, możesz sprawdzić, czy ten obiekt został rozszerzony do elementu hosta, czy kontrolki hosta w dostosowywaniu na poziomie dokumentu. Elementy hosta i kontrolki hosta są typami udostępnianymi przez środowisko uruchomieniowe Visual Studio Tools dla pakietu Office, które dodaje funkcje do obiektów, które istnieją natywnie w modelach obiektów programu Word lub Excel (nazywanych natywnymi obiektami pakietu 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 (Omówienie elementów hosta i kontrolek hosta).

Omówienie metod GetVstoObject i HasVstoObject

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

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

  • GetVstoObject Użyj metody , jeśli chcesz uzyskać obiekt rozszerzony dla natywnego obiektu pakietu Office. Ta metoda zwraca ListObjectobiekt , , WorksheetWorkbooklubDocument, jeśli określony natywny obiekt pakietu Office ma jeden. GetVstoObject W przeciwnym razie zwraca wartość null. Na przykład GetVstoObject metoda zwraca Document wartość , jeśli określony Document jest obiektem bazowym dokumentu w projekcie dokumentu programu Word.

    W projektach na poziomie dokumentu nie można użyć GetVstoObject metody do utworzenia nowego Workbookelementu , Worksheetlub Document hosta w czasie wykonywania. Tej metody można użyć tylko do uzyskiwania dostępu do istniejących elementów hostów generowanych w projekcie w czasie projektowania. Jeśli chcesz utworzyć nowe elementy hosta w czasie wykonywania, musisz utworzyć projekt dodatku VSTO. Aby uzyskać więcej informacji, zobacz Programowe ograniczenia elementów hosta i kontrolek hosta oraz Rozszerzanie dokumentów programu Word i skoroszytów programu Excel w dodatku VSTO w czasie wykonywania.

Używanie metod GetVstoObject i HasVstoObject

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