Przewodnik: wywoływanie kodu z języka VBA w projekcie Visual Basic
W tym przewodniku pokazano, jak wywołać metodę w dostosowywaniu na poziomie dokumentu dla programu Microsoft Office Word z poziomu programu Visual Basic for Applications (VBA) w dokumencie. Procedura obejmuje trzy podstawowe kroki: dodanie metody do klasy elementu hosta, uwidocznienie metody w ThisDocument
kodzie VBA, a następnie wywołanie metody z kodu VBA w dokumencie.
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.
Mimo że ten przewodnik używa programu Word specjalnie, koncepcje przedstawione w przewodniku dotyczą również projektów na poziomie dokumentu dla programu Excel.
W instruktażu przedstawiono następujące zagadnienia:
Tworzenie dokumentu zawierającego kod VBA.
Ufanie lokalizacji dokumentu przy użyciu Centrum zaufania w programie Word.
Dodawanie metody do
ThisDocument
klasy elementu hosta.Uwidacznianie metody w kodzie VBA.
Wywoływanie metody 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 programu Visual Studio.
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 Word
Tworzenie dokumentu zawierającego kod VBA
Pierwszym krokiem jest utworzenie dokumentu z obsługą makr, który zawiera proste makro VBA. Dokument musi zawierać projekt VBA przed utworzeniem projektu programu Visual Studio opartego na tym dokumencie. W przeciwnym razie program Visual Studio nie może zmodyfikować projektu VBA, aby umożliwić wywołanie kodu VBA do zestawu dostosowywania.
Jeśli masz już dokument zawierający kod VBA, którego chcesz użyć, możesz pominąć ten krok.
Aby utworzyć dokument zawierający kod VBA
Uruchom program Word.
Zapisz aktywny dokument jako dokument z obsługą makr programu Word (*.docm) o nazwie DocumentWithVBA. 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 Project (Projekt) kliknij dwukrotnie thisDocument (Ten dokument).
Zostanie otwarty plik kodu dla
ThisDocument
obiektu.Dodaj następujący kod VBA do pliku kodu. Ten kod definiuje prostą funkcję, która nic nie robi. Jedynym celem tej funkcji jest upewnienie się, że projekt VBA istnieje w dokumencie. Jest to wymagane w przypadku dalszych kroków w tym przewodniku.
Sub EmptySub() End Sub
Zapisz dokument i zamknij program Word.
Tworzenie projektu
Teraz możesz utworzyć projekt na poziomie dokumentu dla programu Word, który używa utworzonego wcześniej dokumentu z obsługą makr.
Aby utworzyć nowy projekt
Uruchom program Visual Studio.
W menu Plik wskaż polecenie Nowy, a następnie kliknij pozycję Projekt. Jeśli środowisko IDE ma używać ustawień programowania języka Visual Basic, w menu Plik kliknij pozycję Nowy projekt.
W okienku szablonów rozwiń węzeł Visual Basic, a następnie rozwiń węzeł Office/SharePoint.
Wybierz węzeł Dodatki pakietu Office.
Na liście szablonów projektów wybierz projekt Dokument programu Word 2010 lub Dokument programu Word 2013.
W polu Nazwa wpisz CallingCodeFromVBA.
Kliknij przycisk OK.
Zostanie otwarty Kreator projektu Visual Studio Tools dla pakietu Office.
Wybierz pozycję Kopiuj istniejący dokument, a następnie w polu Pełna ścieżka istniejącego dokumentu określ lokalizację utworzonego wcześniej dokumentu DocumentWithVBA . Jeśli używasz własnego dokumentu z obsługą makr, określ lokalizację tego dokumentu.
Kliknij przycisk Zakończ.
Program Visual Studio otwiera dokument DocumentWithVBA w projektancie i dodaje projekt CallingCodeFromVBA do Eksplorator rozwiązań.
Ufaj lokalizacji dokumentu
Aby uwidocznić kod w rozwiązaniu do kodu VBA w dokumencie, musisz ufać skryptowi VBA w dokumencie, aby go uruchomić. Może to być realizowane na kilka sposobów. W tym przewodniku ufaj lokalizacji dokumentu w Centrum zaufania w programie Word.
Aby ufać lokalizacji dokumentu
Uruchom program Word.
Kliknij kartę Plik .
Kliknij przycisk Opcje programu Word.
W okienku kategorii kliknij pozycję Centrum zaufania.
W okienku szczegółów kliknij pozycję Centrum zaufania Ustawienia.
W okienku kategorii kliknij pozycję Zaufane lokalizacje.
W okienku szczegółów kliknij pozycję Dodaj nową lokalizację.
W oknie dialogowym Zaufana lokalizacja pakietu Microsoft Office przejdź do folderu zawierającego projekt CallingCodeFromVBA.
Wybierz pozycję Podfoldery tej lokalizacji są również zaufane.
W oknie dialogowym Zaufana lokalizacja pakietu Microsoft Office kliknij przycisk OK.
W centrum zaufania okno dialogowe, kliknij przycisk OK.
W oknie dialogowym Opcje programu Word kliknij przycisk OK.
Zamknij program Word.
Dodawanie metody do klasy ThisDocument
Po skonfigurowaniu projektu VBA dodaj metodę do ThisDocument
klasy elementu hosta, którą można wywołać z kodu VBA.
Aby dodać metodę do klasy ThisDocument
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję ThisDocument.vb, a następnie kliknij polecenie Wyświetl kod.
Plik ThisDocument.vb zostanie otwarty w Edytorze kodu.
Dodaj następującą metodę do
ThisDocument
klasy . Ta metoda tworzy tabelę z dwoma wierszami i dwiema kolumnami na początku dokumentu. Parametry określają tekst wyświetlany w pierwszym wierszu. W dalszej części tego przewodnika wywołasz tę metodę z kodu VBA w dokumencie.Public Sub CreateTable(ByVal firstColumnHeader As String, _ ByVal secondColumnHeader As String) Me.Paragraphs(1).Range.InsertParagraphBefore() Dim table1 As Word.Table = Me.Tables.Add(Me.Paragraphs(1).Range, 2, 2) With table1 .Style = "Table Professional" .Cell(1, 1).Range.Text = firstColumnHeader .Cell(1, 2).Range.Text = secondColumnHeader End With End Sub
Skompiluj projekt.
Uwidaczniaj metodę w kodzie VBA
Aby uwidocznić metodę CreateTable
na kod VBA w dokumencie, ustaw właściwość EnableVbaCallers dla ThisDocument
elementu hosta na true.
Aby uwidocznić metodę w kodzie VBA
W Eksplorator rozwiązań kliknij dwukrotnie plik ThisDocument.vb.
Plik DocumentWithVBA zostanie otwarty w projektancie.
W oknie Właściwości wybierz właściwość EnableVbaCallers i zmień wartość na True.
Kliknij przycisk OK w wyświetlonym komunikacie.
Skompiluj projekt.
Wywoływanie metody z kodu VBA
Teraz możesz wywołać metodę CreateTable
z kodu VBA w dokumencie.
Uwaga
W tym przewodniku dodasz kod VBA do dokumentu podczas debugowania projektu. Kod VBA dodany do tego dokumentu zostanie zastąpiony następnym razem, gdy skompilujesz projekt, ponieważ program Visual Studio zastępuje dokument w folderze wyjściowym kompilacji kopią dokumentu z głównego folderu projektu. Jeśli chcesz zapisać kod VBA, możesz skopiować go do dokumentu w folderze projektu. Aby uzyskać więcej informacji, zobacz Łączenie dostosowań języka VBA i dostosowywania na poziomie dokumentu.
Aby wywołać metodę z kodu VBA
Naciśnij klawisz F5 , aby uruchomić projekt.
Na karcie Deweloper w grupie Kod kliknij pozycję Visual Basic.
Zostanie otwarty Edytor Visual Basic.
W menu Wstawianie kliknij pozycję Moduł.
Dodaj następujący kod do nowego modułu.
Ten kod wywołuje metodę
CreateTable
w zestawie dostosowywania. Makro uzyskuje dostęp do tej metody przy użyciuCallVSTOAssembly
właściwościThisDocument
obiektu. Ta właściwość została wygenerowana automatycznie podczas ustawiania właściwości EnableVbaCallers wcześniej w tym przewodniku.Sub CreateTable() Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date") End Sub
Naciśnij klawisz F5.
Sprawdź, czy nowa tabela została dodana do dokumentu.
Zamknij program Word bez zapisywania zmian.
Następne kroki
Więcej informacji na temat wywoływania kodu w rozwiązaniach pakietu Office można znaleźć w języku VBA w następujących tematach:
Wywoływanie kodu w dostosowywaniu języka Visual C# z poziomu języka VBA. Ten proces różni się od procesu Visual Basic. Aby uzyskać więcej informacji, zobacz Walkthrough: Call code from VBA in a Visual C# project (Przewodnik: wywoływanie kodu z języka VBA w projekcie Visual C#).
Wywołaj kod w dodatku VSTO z vbA. Aby uzyskać więcej informacji, zobacz Przewodnik: wywoływanie kodu w dodatku VSTO z języka VBA.