Udostępnij za pośrednictwem


Pisanie kodu w rozwiązaniach pakietu Office

Istnieją pewne aspekty pisania kodu w projektach pakietu Office, które różnią się od innych typów projektów w programie Visual Studio. Wiele z tych różnic jest związanych ze sposobem, w jaki modele obiektów pakietu Office są widoczne dla kodu zarządzanego. Inne różnice są związane z projektowaniem projektów pakietu Office.

Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu i projektów dodatków VSTO. Zobacz Funkcje dostępne według aplikacja pakietu Office lication i typu projektu.

Kod zarządzany i programowanie pakietu Office

Kluczową technologią, która umożliwia utworzenie zintegrowanego rozwiązania pakietu Microsoft Office, jest automatyzacja, która jest częścią technologii modelu obiektów składowych (COM). Automatyzacja umożliwia używanie kodu do tworzenia i kontrolowania obiektów oprogramowania udostępnianych przez dowolną aplikację, bibliotekę DLL lub kontrolkę ActiveX, która obsługuje odpowiednie interfejsy programowe.

Omówienie podstawowych zestawów międzyoperacyjnych

Microsoft aplikacja pakietu Office lications uwidacznia większość swoich funkcji automatyzacji. Nie można jednak bezpośrednio używać kodu zarządzanego (takiego jak Visual Basic lub C#), aby zautomatyzować aplikacja pakietu Office licacje. Aby zautomatyzować aplikacja pakietu Office licacje przy użyciu kodu zarządzanego, należy użyć podstawowych zestawów międzyoperacyjnych (PIA) pakietu Office. Podstawowe zestawy międzyoperacyjne umożliwiają interakcję kodu zarządzanego z modelem obiektów opartym na modelu com aplikacja pakietu Office lications.

Każda aplikacja pakietu Office licacja firmy Microsoft ma dane osobowe. Podczas tworzenia projektu pakietu Office w programie Visual Studio odwołanie do odpowiednich danych PIA jest automatycznie dodawane do projektu. Aby zautomatyzować funkcje innych aplikacja pakietu Office lications z projektu, należy ręcznie dodać odwołanie do odpowiednich danych PIA. Aby uzyskać więcej informacji, zobacz How to: Target aplikacja pakietu Office lications through primary interop assemblies (Instrukcje: aplikacja pakietu Office lications za pośrednictwem podstawowych zestawów międzyoperacyjnych).

Używanie podstawowych zestawów międzyoperacyjnych w czasie projektowania i czasie wykonywania

Aby wykonać większość zadań programistycznych, musisz mieć zainstalowane i zarejestrowane w globalnej pamięci podręcznej zestawów na komputerze deweloperskim. Aby uzyskać więcej informacji, zobacz Konfigurowanie komputera do tworzenia rozwiązań pakietu Office.

Dane OSOBOWE pakietu Office nie są wymagane na komputerach użytkowników końcowych do uruchamiania rozwiązań pakietu Office przeznaczonych dla programu .NET Framework 4 lub nowszego. Aby uzyskać więcej informacji, zobacz Projektowanie i tworzenie rozwiązań pakietu Office.

Używanie typów w podstawowych zestawach międzyoperacyjnych

Dane OSOBOWE pakietu Office zawierają kombinację typów, które uwidaczniają model obiektów aplikacja pakietu Office lications i dodatkowe typy infrastruktury, które nie mają być używane bezpośrednio w kodzie. Aby zapoznać się z omówieniem typów w usłudze Office PIA, zobacz Omówienie klas i interfejsów w podstawowych zestawach międzyoperacyjnych pakietu Office.

Ponieważ typy w jednostkach PIA pakietu Office odpowiadają typom w modelach obiektów opartych na modelu COM, sposób korzystania z tych typów jest często różny od innych typów zarządzanych. Na przykład sposób wywoływania metod, które mają parametry opcjonalne w podstawowym zestawie międzyoperacyjności pakietu Office, zależy od języka programowania używanego w projekcie. Aby uzyskać więcej informacji, zobacz następujące tematy:

Model programu projektów pakietu Office

Wszystkie projekty pakietu Office zawierają co najmniej jedną wygenerowaną klasę, która zapewnia punkt wejścia dla kodu. Te klasy zapewniają również dostęp do modelu obiektów aplikacji hosta i dostępu do funkcji, takich jak okienka akcji i niestandardowe okienka zadań.

Omówienie wygenerowanych klas

W projektach na poziomie dokumentu dla programów Excel i Word wygenerowana klasa przypomina obiekt najwyższego poziomu w modelu obiektów aplikacji. Na przykład wygenerowana ThisDocument klasa w projekcie dokumentu programu Word zawiera te same elementy członkowskie co Document klasa w modelu obiektów programu Word. Aby uzyskać więcej informacji na temat wygenerowanych klas w projektach na poziomie dokumentu, zobacz Dostosowywanie na poziomie dokumentu programu.

Projekty dodatków VSTO zapewniają wygenerowaną klasę o nazwie ThisAddIn. Ta klasa nie przypomina klasy w modelu obiektów aplikacji hosta. Zamiast tego ta klasa reprezentuje sam dodatek VSTO i udostępnia elementy członkowskie, których można użyć do uzyskiwania dostępu do modelu obiektów aplikacji hosta i uzyskiwania dostępu do innych funkcji dostępnych dla dodatków VSTO. Aby uzyskać więcej informacji, zobacz Program VSTO Add-ins (Dodatki programu VSTO).

Wszystkie wygenerowane klasy w projektach pakietu Office obejmują Startup programy obsługi zdarzeń i Shutdown . Aby rozpocząć pisanie kodu, zazwyczaj dodajesz kod do tych procedur obsługi zdarzeń. Aby zainicjować dodatek VSTO, możesz dodać kod do programu obsługi zdarzeń Startup . Aby wyczyścić zasoby używane przez dodatek VSTO, możesz dodać kod do programu obsługi zdarzeń Shutdown . Aby uzyskać więcej informacji, zobacz Zdarzenia w projektach pakietu Office.

Uzyskiwanie dostępu do wygenerowanych klas w czasie wykonywania

Po załadowaniu rozwiązania pakietu Office środowisko uruchomieniowe Visual Studio Tools dla pakietu Office tworzy wystąpienie każdej z wygenerowanych klas w projekcie. Dostęp do tych obiektów można uzyskać z dowolnego kodu w projekcie przy użyciu Globals klasy . Na przykład można użyć Globals klasy do wywołania kodu w ThisAddIn klasie z programu obsługi zdarzeń przycisku wstążki w dodatku VSTO.

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

Zagadnienia dotyczące przestrzeni nazw w rozwiązaniach pakietu Office

Nie można zmienić domyślnej przestrzeni nazw (lub głównej przestrzeni nazw w Visual Basic) projektu pakietu Office po utworzeniu projektu. Domyślna przestrzeń nazw będzie zawsze zgodna z nazwą projektu określoną podczas tworzenia projektu. Jeśli zmienisz nazwę projektu, domyślna przestrzeń nazw nie ulegnie zmianie. Aby uzyskać więcej informacji na temat domyślnej przestrzeni nazw w projektach, zobacz Strona aplikacji, Projekt Projektant (C#) i Strona aplikacji, Project Projektant (Visual Basic).

Zmienianie przestrzeni nazw klas elementów hosta w projektach języka C#

Klasy elementów hosta (na przykład ThisAddInklasy , ThisWorkbooklub ThisDocument ) mają własne przestrzenie nazw w projektach pakietu Office w języku Visual C#. Domyślnie przestrzeń nazw elementów hosta w projekcie jest zgodna z nazwą projektu określoną podczas tworzenia projektu.

Aby zmienić przestrzeń nazw elementów hosta w projekcie pakietu Office w języku Visual C#, użyj właściwości Przestrzeń nazw dla elementu hosta. Aby uzyskać więcej informacji, zobacz Właściwości w projektach pakietu Office.

Obsługiwane języki programowania w projektach pakietu Office

Szablony projektów pakietu Office w programie Visual Studio obsługują tylko języki programowania Visual Basic i Visual C#. W związku z tym te szablony projektów są dostępne tylko w węzłach Visual Basic i Visual C# okna dialogowego Nowy projekt w programie Visual Studio. Aby uzyskać więcej informacji, zobacz How to: Create Office projects in Visual Studio (Jak tworzyć projekty pakietu Office w programie Visual Studio).

Wybór języka i programowanie pakietu Office

Pakiety Microsoft Office i Visual Basic for Applications (VBA) zostały opracowane w celu współpracy w celu zoptymalizowania przepływu pracy dostosowywania aplikacji. Visual Basic odziedziczył niektóre z tych zmian. Na przykład język Visual Basic obsługuje parametry opcjonalne, co oznacza, że podczas wywoływania niektórych metod w podstawowych zestawach międzyoperacyjnych pakietu Microsoft Office można napisać mniej kodu niż w przypadku korzystania z języka Visual C#.

Program z językiem Visual Basic a Visual C# w rozwiązaniach pakietu Office

Rozwiązania pakietu Office można tworzyć przy użyciu języka Visual Basic lub Visual C#. Ponieważ modele obiektów pakietu Microsoft Office zostały zaprojektowane tak, aby były używane z programem Microsoft Visual Basic for Applications (VBA), deweloperzy języka Visual Basic mogą wygodnie pracować z obiektami udostępnianymi przez microsoft aplikacja pakietu Office lications. Deweloperzy języka Visual C# mogą używać większości tych samych funkcji co deweloperzy języka Visual Basic, ale istnieje kilka przypadków, w których muszą napisać dodatkowy kod, aby używać modeli obiektów pakietu Office. Istnieją również pewne różnice między podstawowymi funkcjami programowania w pakiecie Office i kodem zarządzanym napisanym w języku Visual Basic i C#.

Kluczowe różnice między językami Visual Basic i Visual C#

W poniższej tabeli przedstawiono kluczowe różnice między językami Visual Basic i Visual C# w programach programistycznych pakietu Office.

Funkcja opis Obsługa języka Visual Basic Obsługa języka Visual C#
Parametry opcjonalne Wiele metod pakietu Microsoft Office ma parametry, które nie są wymagane podczas wywoływania metody. Jeśli dla parametru nie zostanie przekazana żadna wartość, zostanie użyta wartość domyślna. Język Visual Basic obsługuje parametry opcjonalne. W większości przypadków język Visual C# obsługuje parametry opcjonalne. Aby uzyskać więcej informacji, zobacz Parametry opcjonalne w rozwiązaniach pakietu Office.
Przekazywanie parametrów według odwołania Opcjonalne parametry w większości podstawowych zestawów międzyoperacyjnych pakietu Microsoft Office mogą być przekazywane przez wartość. Jednak w niektórych podstawowych zestawach międzyoperacyjnych opcjonalne parametry, które akceptują typy odwołań, muszą być przekazywane przez odwołanie.

Aby uzyskać więcej informacji na temat parametrów wartości i typu odwołania, zobacz Pass arguments by value and by reference (Visual Basic) (For Visual Basic) (Przekazywanie argumentów według wartości) i Pass parameters (Przewodnik programowania w języku C#).
Do przekazania parametrów przez odwołanie nie jest potrzebna żadna dodatkowa praca. Kompilator języka Visual Basic automatycznie przekazuje parametry według odwołania w razie potrzeby. W większości przypadków kompilator języka Visual C# automatycznie przekazuje parametry według odwołania w razie potrzeby. Aby uzyskać więcej informacji, zobacz Parametry opcjonalne w rozwiązaniach pakietu Office.
Właściwości sparametryzowane Niektóre właściwości akceptują parametry i działają jako funkcje tylko do odczytu. Język Visual Basic obsługuje właściwości, które akceptują parametry. Język Visual C# obsługuje właściwości akceptujące parametry.
Opóźnione powiązanie Opóźnione powiązanie obejmuje określenie właściwości obiektów w czasie wykonywania, zamiast rzutowania zmiennych do typu obiektu w czasie projektowania. Program Visual Basic wykonuje opóźnione powiązanie, gdy opcja Strict jest wyłączona. Gdy opcja Strict jest włączona, należy jawnie przekonwertować obiekty i użyć typów w System.Reflection przestrzeni nazw, aby uzyskać dostęp do elementów członkowskich z opóźnieniem. Aby uzyskać więcej informacji, zobacz Późne powiązanie w rozwiązaniach pakietu Office. Program Visual C# wykonuje późne powiązanie w projektach przeznaczonych dla programu .NET Framework 4. Aby uzyskać więcej informacji, zobacz Późne powiązanie w rozwiązaniach pakietu Office.

Kluczowe różnice między programowaniem pakietu Office i kodem zarządzanym

W poniższej tabeli przedstawiono kluczowe różnice między programowaniem pakietu Office i kodem zarządzanym napisanym w języku Visual Basic lub Visual C#.

Funkcja opis Obsługa języka Visual Basic i Visual C#
Indeksy tablic Dolna granica tablicy kolekcji w aplikacja pakietu Office lication firmy Microsoft zaczyna się od 1. Język Visual Basic i Visual C# używają tablic opartych na 0. Aby uzyskać więcej informacji, zobacz Tablice (przewodnik programowania w języku C#) i Tablice w Visual Basic. Aby uzyskać dostęp do pierwszego elementu kolekcji w modelu obiektów aplikacja pakietu Office licacji firmy Microsoft, użyj indeksu 1 zamiast 0.