Udostępnij za pośrednictwem


Przewodnik: Programowanie pakietu Office w Visual Basic

Program Visual Studio oferuje funkcje w języku Visual Basic, które usprawniają programowanie pakietu Microsoft Office. Funkcje w języku Visual Basic obejmują automatycznie zaimplementowane właściwości, instrukcje w wyrażeniach lambda i inicjatory kolekcji. Można osadzić informacje o typie, które umożliwiają wdrażanie zestawów współdziałających ze składnikami MODELU COM bez wdrażania podstawowych zestawów międzyoperacyjnych (PIA) na komputerze użytkownika. Aby uzyskać więcej informacji, zobacz Przewodnik: osadzanie typów z zarządzanych zestawów.

Ten przewodnik przedstawia te funkcje w kontekście programowania pakietu Office, ale wiele z tych funkcji jest również przydatnych w ogólnym programowaniu. W przewodniku użyjesz aplikacji dodatku programu Excel do utworzenia skoroszytu programu Excel. Następnie utworzysz dokument Word zawierający link do skoroszytu. Na koniec zobaczysz, jak włączyć i wyłączyć zależność PIA.

Wymagania wstępne

Aby ukończyć ten przewodnik, musisz mieć zainstalowany program Microsoft Office Excel i pakiet Microsoft Office Word na komputerze.

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.

Konfigurowanie aplikacji dodatku programu Excel

  1. Uruchom program Visual Studio.

  2. W menu Plik wskaż polecenie Nowy, a następnie kliknij pozycję Projekt.

  3. W okienku Zainstalowane szablony rozwiń węzeł Visual Basic, rozwiń węzeł Office, a następnie kliknij rok wersji produktu pakietu Office.

  4. W okienku Szablony kliknij pozycję Dodatek do wersji> programu Excel<.

  5. Przyjrzyj się górnej części okienka Szablony, aby upewnić się, że .NET Framework 4 lub nowsza wersja jest wyświetlana w polu Platforma docelowa.

  6. Wpisz nazwę projektu w polu Nazwa , jeśli chcesz.

  7. Kliknij przycisk OK.

  8. Nowy projekt zostanie wyświetlony w Eksplorator rozwiązań.

Dodawanie odwołań

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy nazwę projektu, a następnie kliknij polecenie Dodaj odwołanie. Zostanie wyświetlone okno dialogowe Dodawanie odwołania .

  2. Na karcie Zestawy wybierz pozycję Microsoft.Office.Interop.Excel, wersja <version>.0.0.0 (aby uzyskać klucz do numerów wersji produktu pakietu Office, zobacz Wersje firmy Microsoft), na liście Nazwa składnika, a następnie przytrzymaj klawisz CTRL i wybierz pozycję Microsoft.Office.Interop.Word. version <version>.0.0.0 Jeśli zestawy nie są widoczne, może być konieczne upewnienie się, że są zainstalowane i wyświetlane (zobacz Instrukcje: instalowanie podstawowych zestawów międzyoperacyjnych pakietu Office).

  3. Kliknij przycisk OK.

Dodawanie niezbędnych instrukcji Import lub używanie dyrektyw

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy plik ThisAddIn.vb lub ThisAddIn.cs, a następnie kliknij polecenie Wyświetl kod.

  2. Dodaj następujące Imports instrukcje na początku pliku kodu, jeśli nie są jeszcze obecne.

    Imports Microsoft.Office.Interop
    

Tworzenie listy kont bankowych

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy nazwę projektu, kliknij polecenie Dodaj, a następnie kliknij pozycję Klasa. Nadaj klasie nazwę Account.vb. Kliknij pozycję Dodaj.

  2. Zastąp definicję Account klasy następującym kodem. Definicje klas używają automatycznie zaimplementowanych właściwości. Aby uzyskać więcej informacji, zobacz Właściwości zaimplementowane automatycznie.

    Public Class Account
        Property ID As Integer = -1
        Property Balance As Double
    End Class
    
  3. Aby utworzyć listę zawierającą bankAccounts dwa konta, dodaj następujący kod do ThisAddIn_Startup metody w pliku ThisAddIn.vb. Deklaracje listy używają inicjatorów kolekcji. Aby uzyskać więcej informacji, zobacz Inicjatory kolekcji.

    Dim bankAccounts As New List(Of Account) From {
        New Account With {
                              .ID = 345,
                              .Balance = 541.27
                         },
        New Account With {
                              .ID = 123,
                              .Balance = -127.44
                         }
        }
    

Eksportowanie danych do programu Excel

  1. W tym samym pliku dodaj następującą metodę do ThisAddIn klasy . Metoda konfiguruje skoroszyt programu Excel i eksportuje do niego dane.

    Sub DisplayInExcel(ByVal accounts As IEnumerable(Of Account),
                   ByVal DisplayAction As Action(Of Account, Excel.Range))
    
        With Me.Application
            ' Add a new Excel workbook.
            .Workbooks.Add()
            .Visible = True
            .Range("A1").Value = "ID"
            .Range("B1").Value = "Balance"
            .Range("A2").Select()
    
            For Each ac In accounts
                DisplayAction(ac, .ActiveCell)
                .ActiveCell.Offset(1, 0).Select()
            Next
    
            ' Copy the results to the Clipboard.
            .Range("A1:B3").Copy()
        End With
    End Sub
    
    • Metoda Add ma opcjonalny parametr służący do określania określonego szablonu. Parametry opcjonalne umożliwiają pominięcie argumentu dla tego parametru, jeśli chcesz użyć wartości domyślnej parametru. Ponieważ żaden argument nie jest wysyłany w poprzednim przykładzie, Add używa szablonu domyślnego i tworzy nowy skoroszyt.

    • Właściwości Range i Offset obiektu Range używają funkcji właściwości indeksowanych . Właściwości indeksowane umożliwiają również używanie Value właściwości Range obiektu, eliminując konieczność używania Value2 właściwości . Właściwość Value jest indeksowana, ale indeks jest opcjonalny. Opcjonalne argumenty i właściwości indeksowane współpracują ze sobą w poniższym przykładzie.

  2. Dodaj następujący kod na końcu DisplayInExcel , aby dostosować szerokości kolumn w celu dopasowania ich do zawartości.

    ' Add the following two lines at the end of the With statement.
    .Columns(1).AutoFit()
    .Columns(2).AutoFit()
    

    Aby uzyskać więcej informacji na temat osadzania typów międzyoperacyjnych, zobacz procedury "Aby znaleźć odwołanie do danych OSOBOWYCH" i "Aby przywrócić zależność PIA" w dalszej części tego artykułu.

Wywoływanie elementu DisplayInExcel

  1. Dodaj następujący kod na końcu ThisAddIn_StartUp metody . Wywołanie metody zawiera DisplayInExcel dwa argumenty. Pierwszym argumentem jest nazwa listy kont do przetworzenia. Drugim argumentem jest wyrażenie lambda wielowierszowe, które definiuje sposób przetwarzania danych. Wartości ID i balance dla każdego konta są wyświetlane w sąsiednich komórkach, a wiersz jest wyświetlany na czerwono, jeśli saldo jest mniejsze niż zero.

    DisplayInExcel(bankAccounts,
           Sub(account, cell)
               ' This multiline lambda expression sets custom
               ' processing rules for the bankAccounts.
               cell.Value = account.ID
               cell.Offset(0, 1).Value = account.Balance
    
               If account.Balance < 0 Then
                   cell.Interior.Color = RGB(255, 0, 0)
                   cell.Offset(0, 1).Interior.Color = RGB(255, 0, 0)
               End If
           End Sub)
    
  2. Aby uruchomić program, naciśnij klawisz F5. Zostanie wyświetlony arkusz programu Excel zawierający dane z kont.

Dodawanie dokumentu Word

  1. Dodaj następujący kod na końcu ThisAddIn_StartUp metody , aby utworzyć dokument Word zawierający link do skoroszytu programu Excel.

    Dim wordApp As New Word.Application
    wordApp.Visible = True
    wordApp.Documents.Add()
    wordApp.Selection.PasteSpecial(Link:=True, DisplayAsIcon:=True)
    

    Metoda PasteSpecial ma siedem parametrów, z których wszystkie są zdefiniowane jako opcjonalne parametry odwołania. Argumenty nazwane i opcjonalne umożliwiają wyznaczenie parametrów, do których chcesz uzyskać dostęp według nazwy, oraz wysyłanie argumentów tylko do tych parametrów. W tym przykładzie argumenty są wysyłane w celu wskazania, że należy utworzyć link do skoroszytu w Schowku (parametr Link) i że link ma być wyświetlany w dokumencie Word jako ikona (parametr DisplayAsIcon).

Uruchamianie aplikacji

  1. Naciśnij klawisz F5, aby uruchomić aplikację. Program Excel uruchamia i wyświetla tabelę zawierającą informacje z dwóch kont w programie bankAccounts. Następnie zostanie wyświetlony dokument Word zawierający link do tabeli programu Excel.

Czyszczenie ukończonego projektu

  1. W programie Visual Studio kliknij pozycję Czyste rozwiązanie w menu Kompilacja . W przeciwnym razie dodatek będzie uruchamiany za każdym razem, gdy otworzysz program Excel na komputerze.

Znajdowanie dokumentacji pia

  1. Uruchom ponownie aplikację, ale nie klikaj pozycji Wyczyść rozwiązanie.

  2. Wybierz przycisk Start. Znajdź wersję> programu Microsoft Visual Studio < i otwórz wiersz polecenia dewelopera.

  3. Wpisz ildasm wiersz polecenia dla deweloperów dla programu Visual Studio, a następnie naciśnij klawisz ENTER. Zostanie wyświetlone okno IL DASM.

  4. W menu Plik w oknie IL DASM wybierz pozycję Plik>otwórz. Kliknij dwukrotnie wersję> programu Visual Studio<, a następnie kliknij dwukrotnie pozycję Projekty. Otwórz folder projektu i poszukaj w folderze bin/Debug nazwy projektu.dll. Kliknij dwukrotnie nazwę projektu.dll. Nowe okno wyświetla atrybuty projektu oprócz odwołań do innych modułów i zestawów. Należy pamiętać, że przestrzenie Microsoft.Office.Interop.Excel nazw i Microsoft.Office.Interop.Word są uwzględnione w zestawie. Domyślnie w programie Visual Studio kompilator importuje wymagane typy z przywoływanej usługi PIA do zestawu.

    Aby uzyskać więcej informacji, zobacz How to: View Assembly Contents (Instrukcje: wyświetlanie zawartości zestawu).

  5. Kliknij dwukrotnie ikonę MANIFEST . Zostanie wyświetlone okno zawierające listę zestawów zawierających elementy, do których odwołuje się projekt. Microsoft.Office.Interop.Excel i Microsoft.Office.Interop.Word nie są uwzględnione na liście. Ponieważ typy, których potrzebuje projekt, zostały zaimportowane do zestawu, odwołania do usługi PIA nie są wymagane. Ułatwia to wdrażanie. Dane osobowe nie muszą być obecne na komputerze użytkownika i ponieważ aplikacja nie wymaga wdrożenia określonej wersji usługi PIA, aplikacje można zaprojektować do pracy z wieloma wersjami pakietu Office, pod warunkiem, że niezbędne interfejsy API istnieją we wszystkich wersjach.

    Ponieważ wdrażanie danych PIA nie jest już konieczne, możesz utworzyć aplikację w zaawansowanych scenariuszach, które współdziałają z wieloma wersjami pakietu Office, w tym z wcześniejszymi wersjami. Działa to jednak tylko wtedy, gdy kod nie używa żadnych interfejsów API, które nie są dostępne w wersji pakietu Office, z którą pracujesz. Nie zawsze jest jasne, czy określony interfejs API był dostępny we wcześniejszej wersji, a z tego powodu praca z wcześniejszymi wersjami pakietu Office nie jest zalecana.

    Uwaga

    Pakiet Office nie opublikował umów PIA przed pakietem Office 2003. Dlatego jedynym sposobem generowania zestawu międzyoperacyjnego dla pakietu Office 2002 lub starszych wersji jest zaimportowanie odwołania COM.

  6. Zamknij okno manifestu i okno zestawu.

Przywracanie zależności usługi PIA

  1. W Eksplorator rozwiązań kliknij przycisk Pokaż wszystkie pliki. Rozwiń folder Odwołania i wybierz pozycję Microsoft.Office.Interop.Excel. Naciśnij klawisz F4, aby wyświetlić okno Właściwości .
  2. W oknie Właściwości zmień właściwość Osadzanie typów międzyoperacyjnych z true na False.
  3. Powtórz kroki 1 i 2 w tej procedurze dla Microsoft.Office.Interop.Wordpolecenia .
  4. Naciśnij klawisz F5, aby sprawdzić, czy projekt nadal działa poprawnie.
  5. Powtórz kroki 1–3 z poprzedniej procedury, aby otworzyć okno zestawu. Zwróć uwagę, że Microsoft.Office.Interop.WordMicrosoft.Office.Interop.Excel zestawy osadzone nie znajdują się już na liście zestawów osadzonych.
  6. Kliknij dwukrotnie ikonę MANIFEST i przewiń listę odwołanych zestawów. Oba Microsoft.Office.Interop.Word i Microsoft.Office.Interop.Excel znajdują się na liście. Ponieważ aplikacja odwołuje się do programu Excel i Word danych PIA, a właściwość Embed Interop Types ma wartość False, oba zestawy muszą istnieć na komputerze użytkownika końcowego.
  7. W programie Visual Studio kliknij pozycję Wyczyść rozwiązanie w menu Kompilacja , aby wyczyścić ukończony projekt.

Zobacz też