Udostępnij za pośrednictwem


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:

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

  1. Uruchom program Word.

  2. Zapisz aktywny dokument jako dokument z obsługą makr programu Word (*.docm) o nazwie DocumentWithVBA. Zapisz go w dogodnej lokalizacji, takiej jak pulpit.

  3. 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.

  4. W grupie Kod kliknij pozycję Visual Basic.

    Zostanie otwarty Edytor Visual Basic.

  5. W oknie Project (Projekt) kliknij dwukrotnie thisDocument (Ten dokument).

    Zostanie otwarty plik kodu dla ThisDocument obiektu.

  6. 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
    
  7. 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

  1. Uruchom program Visual Studio.

  2. 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.

  3. W okienku szablonów rozwiń węzeł Visual Basic, a następnie rozwiń węzeł Office/SharePoint.

  4. Wybierz węzeł Dodatki pakietu Office.

  5. Na liście szablonów projektów wybierz projekt Dokument programu Word 2010 lub Dokument programu Word 2013.

  6. W polu Nazwa wpisz CallingCodeFromVBA.

  7. Kliknij przycisk OK.

    Zostanie otwarty Kreator projektu Visual Studio Tools dla pakietu Office.

  8. 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.

  9. 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

  1. Uruchom program Word.

  2. Kliknij kartę Plik .

  3. Kliknij przycisk Opcje programu Word.

  4. W okienku kategorii kliknij pozycję Centrum zaufania.

  5. W okienku szczegółów kliknij pozycję Centrum zaufania Ustawienia.

  6. W okienku kategorii kliknij pozycję Zaufane lokalizacje.

  7. W okienku szczegółów kliknij pozycję Dodaj nową lokalizację.

  8. W oknie dialogowym Zaufana lokalizacja pakietu Microsoft Office przejdź do folderu zawierającego projekt CallingCodeFromVBA.

  9. Wybierz pozycję Podfoldery tej lokalizacji są również zaufane.

  10. W oknie dialogowym Zaufana lokalizacja pakietu Microsoft Office kliknij przycisk OK.

  11. W centrum zaufania okno dialogowe, kliknij przycisk OK.

  12. W oknie dialogowym Opcje programu Word kliknij przycisk OK.

  13. 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

  1. 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.

  2. 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
    
  3. 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

  1. W Eksplorator rozwiązań kliknij dwukrotnie plik ThisDocument.vb.

    Plik DocumentWithVBA zostanie otwarty w projektancie.

  2. W oknie Właściwości wybierz właściwość EnableVbaCallers i zmień wartość na True.

  3. Kliknij przycisk OK w wyświetlonym komunikacie.

  4. 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

  1. Naciśnij klawisz F5 , aby uruchomić projekt.

  2. Na karcie Deweloper w grupie Kod kliknij pozycję Visual Basic.

    Zostanie otwarty Edytor Visual Basic.

  3. W menu Wstawianie kliknij pozycję Moduł.

  4. 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życiu CallVSTOAssembly właściwości ThisDocument 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
    
  5. Naciśnij klawisz F5.

  6. Sprawdź, czy nowa tabela została dodana do dokumentu.

  7. 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: