Przewodnik: wywoływanie kodu w dodatku VSTO z języka VBA
W tym przewodniku pokazano, jak uwidocznić obiekt w dodatku VSTO do innych rozwiązań pakietu Microsoft Office, w tym Visual Basic for Applications (VBA) i dodatków COM VSTO.
Dotyczy: informacje w tym temacie dotyczą projektów dodatków VSTO. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.
Mimo że ten przewodnik używa programu Excel specjalnie, koncepcje przedstawione w przewodniku mają zastosowanie do dowolnego szablonu projektu dodatku VSTO dostarczonego przez program Visual Studio.
W instruktażu przedstawiono następujące zagadnienia:
Definiowanie klasy, która może być widoczna dla innych rozwiązań pakietu Office.
Udostępnianie klasy innym rozwiązaniom pakietu Office.
Wywoływanie metody klasy z kodu VBA.
Uwaga
Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE.
Wymagania wstępne
Następujące składniki są wymagane do przeprowadzenia tego instruktażu:
Edycja programu Visual Studio, która oferuje narzędzia deweloperskie pakietu Microsoft Office. Aby uzyskać więcej informacji, zobacz Konfigurowanie komputera do tworzenia rozwiązań pakietu Office.
Microsoft Excel
Tworzenie projektu dodatku VSTO
Pierwszym krokiem jest utworzenie projektu dodatku VSTO dla programu Excel.
Aby utworzyć nowy projekt
Utwórz projekt dodatku VSTO programu Excel o nazwie ExcelImportData przy użyciu szablonu projektu dodatku VSTO programu Excel. Aby uzyskać więcej informacji, zobacz How to: Create Office Projects in Visual Studio (Jak tworzyć projekty pakietu Office w programie Visual Studio).
Program Visual Studio otwiera plik kodu ThisAddIn.cs lub ThisAddIn.vb i dodaje projekt ExcelImportData do Eksplorator rozwiązań.
Definiowanie klasy, którą można uwidocznić w innych rozwiązaniach pakietu Office
Celem tego przewodnika jest wywołanie ImportData
metody klasy o nazwie AddInUtilities
w dodatku VSTO z kodu VBA. Ta metoda zapisuje ciąg w komórce A1 aktywnego arkusza.
Aby udostępnić klasę AddInUtilities
innym rozwiązaniom pakietu Office, należy udostępnić klasę jako publiczną i widoczną dla modelu COM. Należy również uwidocznić interfejs IDispatch w klasie . Kod w poniższej procedurze przedstawia jeden ze sposobów spełnienia tych wymagań. Aby uzyskać więcej informacji, zobacz Wywoływanie kodu w dodatku VSTO z innych rozwiązań pakietu Office.
Aby zdefiniować klasę, którą można uwidocznić w innych rozwiązaniach pakietu Office
W menu Project (Projekt) kliknij pozycję Add Class (Dodaj klasę).
W oknie dialogowym Dodawanie nowego elementu zmień nazwę nowej klasy na AddInUtilities, a następnie kliknij przycisk Dodaj.
Plik AddInUtilities.cs lub AddInUtilities.vb zostanie otwarty w Edytorze kodu.
Dodaj następujące dyrektywy na początku pliku.
Zastąp klasę
AddInUtilities
następującym kodem.[ComVisible(true)] public interface IAddInUtilities { void ImportData(); } [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] public class AddInUtilities : IAddInUtilities { // This method tries to write a string to cell A1 in the active worksheet. public void ImportData() { Excel.Worksheet activeWorksheet = Globals.ThisAddIn.Application.ActiveSheet as Excel.Worksheet; if (activeWorksheet != null) { Excel.Range range1 = activeWorksheet.get_Range("A1", System.Type.Missing); range1.Value2 = "This is my data"; } } }
Ten kod sprawia, że klasa jest
AddInUtilities
widoczna dla modelu COM i dodaje metodęImportData
do klasy. Aby uwidocznić interfejs IDispatch ,AddInUtilities
klasa ma ClassInterfaceAttribute również atrybut i implementuje interfejs widoczny dla modelu COM.
Uwidaczniaj klasę innym rozwiązaniom pakietu Office
Aby uwidocznić klasę AddInUtilities
innym rozwiązaniom pakietu Office, przesłoń metodę RequestComAddInAutomationServiceThisAddIn
w klasie . W zastąpieniu zwróć wystąpienie AddInUtilities
klasy .
Aby uwidocznić klasę AddInUtilities w innych rozwiązaniach pakietu Office
W Eksplorator rozwiązań rozwiń węzeł Excel.
Kliknij prawym przyciskiem myszy thisAddIn.cs lub ThisAddIn.vb, a następnie kliknij polecenie Wyświetl kod.
Dodaj poniższy kod do klasy
ThisAddIn
.W menu Kompilacja kliknij pozycję Kompiluj rozwiązanie.
Sprawdź, czy rozwiązanie jest kompilujące bez błędów.
Testowanie dodatku VSTO
Możesz wywołać klasę AddInUtilities
z kilku różnych typów rozwiązań pakietu Office. W tym przewodniku użyjesz kodu VBA w skoroszycie programu Excel. Aby uzyskać więcej informacji na temat innych typów rozwiązań pakietu Office, których można również użyć, zobacz Wywoływanie kodu w dodatku VSTO z innych rozwiązań pakietu Office.
Aby przetestować dodatek VSTO
Naciśnij klawisz F5 , aby uruchomić projekt.
W programie Excel zapisz aktywny skoroszyt jako skoroszyt z obsługą makr programu Excel (*.xlsm). Zapisz go w dogodnej lokalizacji, takiej jak pulpit.
Na wstążce kliknij kartę Deweloper .
Uwaga
Jeśli karta Deweloper nie jest widoczna, musisz go najpierw wyświetlić. Aby uzyskać więcej informacji, zobacz Instrukcje: pokazywanie karty dewelopera na wstążce.
W grupie Kod kliknij pozycję Visual Basic.
Zostanie otwarty Edytor Visual Basic.
W oknie Projekt kliknij dwukrotnie ten elementWorkbook.
Zostanie otwarty plik kodu dla
ThisWorkbook
obiektu.Dodaj następujący kod VBA do pliku kodu. Ten kod najpierw pobiera obiekt COMAddIn reprezentujący dodatek Programu ExcelImportData VSTO. Następnie kod używa właściwości Object obiektu COMAddIn do wywołania
ImportData
metody .Sub CallVSTOMethod() Dim addIn As COMAddIn Dim automationObject As Object Set addIn = Application.COMAddIns("ExcelImportData") Set automationObject = addIn.Object automationObject.ImportData End Sub
Naciśnij klawisz F5.
Sprawdź, czy nowy zaimportowany arkusz danych został dodany do skoroszytu. Sprawdź również, czy komórka A1 zawiera ciąg To są moje dane.
Zamknij program Excel.
Następne kroki
Więcej informacji na temat programowania dodatków VSTO można znaleźć w następujących tematach:
ThisAddIn
Użyj klasy , aby zautomatyzować aplikację hosta i wykonywać inne zadania w projektach dodatków VSTO. Aby uzyskać więcej informacji, zobacz Program VSTO Add-ins (Dodatki programu VSTO).Utwórz niestandardowe okienko zadań w dodatku VSTO. Aby uzyskać więcej informacji, zobacz Niestandardowe okienka zadań i Instrukcje: Dodawanie niestandardowego okienka zadań do aplikacji.
Dostosuj wstążkę w dodatku VSTO. Aby uzyskać więcej informacji, zobacz Omówienie wstążki i Instrukcje: Rozpoczynanie dostosowywania wstążki.
Powiązana zawartość
- Dodatki programu VSTO
- Wywoływanie kodu w dodatku VSTO z innych rozwiązań pakietu Office
- Opracowywanie rozwiązań pakietu Office
- Porady: tworzenie projektów pakietu Office w programie Visual Studio
- Architektura dodatków narzędzi VSTO
- Dostosowywanie funkcji interfejsu użytkownika przy użyciu interfejsów rozszerzalności