Sdílet prostřednictvím


Návod: Programování pro Office v jazyce Visual Basic

Visual Studio nabízí funkce v jazyce Visual Basic, které zlepšují programování microsoft Office. Funkce v jazyce Visual Basic zahrnují automaticky implementované vlastnosti, příkazy ve výrazech lambda a inicializátory kolekcí. Můžete vložit informace o typu, což umožňuje nasazení sestavení, která komunikují s komponentami modelu COM, bez nasazení primárních sestavení zprostředkovatele komunikace (PIA) do počítače uživatele. Další informace naleznete v tématu Návod: Vkládání typů ze spravovaných sestavení.

Tento názorný postup ukazuje tyto funkce v kontextu programování office, ale mnohé z nich jsou užitečné i při obecném programování. V návodu použijete excelovou doplňkovou aplikaci k vytvoření excelového sešitu. Dále vytvoříte Word dokument, který obsahuje odkaz na sešit. Nakonec uvidíte, jak povolit a zakázat závislost PIA.

Požadavky

K dokončení tohoto návodu musíte mít v počítači nainstalovaný Microsoft Office Excel a Microsoft Office Word.

Poznámka

Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení integrovaného vývojového prostředí(IDE).

Nastavení excelové doplňkové aplikace

  1. Spusťte Visual Studio.

  2. V nabídce File (Soubor) přejděte na New (Nový) a potom klikněte na Project (Projekt).

  3. V podokně Nainstalované šablony rozbalte Visual Basic, rozbalte Office a klikněte na rok verze produktu Office.

  4. V podokně Šablony klikněte na Doplněk verze> Excelu<.

  5. Podívejte se do horní části podokna Šablony a ujistěte se, že se rozhraní .NET Framework 4 nebo novější zobrazí v poli Cílová architektura .

  6. Pokud chcete, zadejte název projektu do pole Název .

  7. Klikněte na OK.

  8. Nový projekt se zobrazí v Průzkumník řešení.

Přidání odkazů

  1. V Průzkumník řešení klikněte pravým tlačítkem myši na název projektu a potom klikněte na Přidat odkaz. Zobrazí se dialogové okno Přidat odkaz .

  2. Na kartě Sestavení vyberte Microsoft.Office.Interop.Excel, verze <version>.0.0.0 (klíč k číslům verzí office najdete v části Microsoft Verze) v seznamu Název součásti, podržte stisknutou klávesu CTRL a vyberte Microsoft.Office.Interop.Word, version <version>.0.0.0. Pokud se sestavení nezobrazují, možná budete muset zajistit, aby se nainstalovala a zobrazila (viz Postup: Instalace primárních sestavení vzájemné spolupráce Office).

  3. Klikněte na OK.

Přidání potřebných příkazů Imports nebo direktiv using

  1. V Průzkumník řešení klikněte pravým tlačítkem na soubor ThisAddIn.vb nebo ThisAddIn.cs a potom klikněte na Zobrazit kód.

  2. Přidejte následující Imports příkazy na začátek souboru kódu, pokud ještě nejsou k dispozici.

    Imports Microsoft.Office.Interop
    

Vytvoření seznamu bankovních účtů

  1. V Průzkumník řešení klikněte pravým tlačítkem na název projektu, klikněte na Přidat a potom klikněte na Třída. Pojmenujte třídu Account.vb. Klikněte na Přidat.

  2. Nahraďte definici Account třídy následujícím kódem. Definice tříd používají automaticky implementované vlastnosti. Další informace najdete v tématu Automaticky implementované vlastnosti.

    Public Class Account
        Property ID As Integer = -1
        Property Balance As Double
    End Class
    
  3. Chcete-li vytvořit bankAccounts seznam, který obsahuje dva účty, přidejte následující kód do ThisAddIn_Startup metody v ThisAddIn.vb. Deklarace seznamu používají inicializátory kolekce. Další informace najdete v tématu Inicializátory kolekce.

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

Export dat do Excelu

  1. Do stejného souboru přidejte následující metodu ThisAddIn do třídy . Metoda nastaví excelový sešit a exportuje do něj data.

    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 Addvolitelný parametr pro určení konkrétní šablony. Volitelné parametry umožňují vynechat argument pro tento parametr, pokud chcete použít výchozí hodnotu parametru. Vzhledem k tomu, že v předchozím příkladu není odeslán žádný argument, Add použije výchozí šablonu a vytvoří nový sešit.

    • Vlastnosti Range a Offset objektu Range používají funkci indexovaných vlastností . Indexované vlastnosti také umožňují používat Value vlastnost objektu Range , čímž eliminujete nutnost používat Value2 vlastnost . Vlastnost Value je indexována, ale index je volitelný. Volitelné argumenty a indexované vlastnosti spolupracují v následujícím příkladu.

  2. Na konec DisplayInExcel přidejte následující kód, který upraví šířky sloupců tak, aby odpovídaly obsahu.

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

    Další informace o vkládání typů zprostředkovatele komunikace najdete dále v tomto článku v postupech "Vyhledání odkazu na pia" a "Obnovení závislosti PIA".

Vyvolat DisplayInExcel

  1. Na konec ThisAddIn_StartUp metody přidejte následující kód. Volání funkce DisplayInExcel obsahuje dva argumenty. Prvním argumentem je název seznamu účtů, které se mají zpracovat. Druhým argumentem je víceřádkový výraz lambda, který definuje způsob zpracování dat. Hodnoty ID a balance pro každý účet se zobrazí v sousedních buňkách a řádek se zobrazí červeně, pokud je zůstatek menší než nula.

    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. Program spustíte stisknutím klávesy F5. Zobrazí se excelový list, který obsahuje data z účtů.

Přidání Word dokumentu

  1. Na konec ThisAddIn_StartUp metody přidejte následující kód pro vytvoření Word dokumentu, který obsahuje odkaz na sešit aplikace Excel.

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

    Metoda PasteSpecial má sedm parametrů, z nichž všechny jsou definovány jako volitelné referenční parametry. Pojmenované a volitelné argumenty umožňují určit parametry, ke kterým chcete získat přístup, podle názvu a odesílat argumenty pouze těmto parametrům. V tomto příkladu se odesílají argumenty, které označují, že se má vytvořit odkaz na sešit ve schránce (parametr Link) a že se odkaz zobrazí v dokumentu Word jako ikona (parametr DisplayAsIcon).

Spuštění aplikace

  1. Stisknutím klávesy F5 spusťte aplikaci. Spustí se Excel a zobrazí tabulku, která obsahuje informace ze dvou účtů v bankAccountsnástroji . Pak se zobrazí dokument Word, který obsahuje odkaz na excelovou tabulku.

Vyčištění dokončeného projektu

  1. V sadě Visual Studio klikněte v nabídce Sestavení na Clean Solution (Vyčistit řešení). V opačném případě se doplněk spustí při každém otevření Excelu na počítači.

Najít referenční informace k pia

  1. Spusťte aplikaci znovu, ale neklikejte na Vyčistit řešení.

  2. Vyberte start. Vyhledejte verzi> sady Microsoft Visual Studio < a otevřete příkazový řádek pro vývojáře.

  3. Do okna Developer Command Prompt for Visual Studio zadejte ildasm a stiskněte klávesu ENTER. Zobrazí se okno IL DASM.

  4. V nabídce Soubor v okně IL DASM vyberte Otevřít soubor>. Poklikejte na verzi> sady Visual Studio <a potom poklikejte na Projekty. Otevřete složku pro váš projekt a ve složce bin/Debug vyhledejte název projektu.dll. Poklikejte na název projektu.dll. V novém okně se kromě odkazů na další moduly a sestavení zobrazí atributy projektu. Všimněte si, že obory Microsoft.Office.Interop.Excel názvů a Microsoft.Office.Interop.Word jsou součástí sestavení. Ve výchozím nastavení v sadě Visual Studio kompilátor importuje potřebné typy z odkazované PIA do sestavení.

    Další informace naleznete v tématu Postupy: Zobrazení obsahu sestavení.

  5. Poklikejte na ikonu MANIFEST . Zobrazí se okno, které obsahuje seznam sestavení obsahující položky odkazované projektem. Microsoft.Office.Interop.Excel a Microsoft.Office.Interop.Word nejsou v seznamu zahrnuty. Vzhledem k tomu, že typy, které váš projekt potřebuje, byly importovány do sestavení, nejsou odkazy na pia vyžadovány. To usnadňuje nasazení. Tyto pia nemusí být na počítači uživatele, a protože aplikace nevyžaduje nasazení konkrétní verze pia, mohou být navrženy tak, aby fungovaly s více verzemi Office za předpokladu, že ve všech verzích existují potřebná rozhraní API.

    Vzhledem k tomu, že nasazení pias už není nutné, můžete vytvořit aplikaci v pokročilých scénářích, které fungují s více verzemi Office, včetně starších verzí. Funguje to ale jenom v případě, že váš kód nepoužívá žádná rozhraní API, která nejsou k dispozici ve verzi Office, se kterou pracujete. Není vždy jasné, jestli bylo určité rozhraní API dostupné ve starší verzi, a proto se nedoporučuje pracovat se staršími verzemi Office.

    Poznámka

    Office nepublikoval pia před Office 2003. Proto jediný způsob, jak vygenerovat interop sestavení pro Office 2002 nebo starší verze, je importem odkazu com.

  6. Zavřete okno manifestu a okno sestavení.

Obnovení závislosti PIA

  1. V Průzkumník řešení klikněte na tlačítko Zobrazit všechny soubory. Rozbalte složku Reference a vyberte Microsoft.Office.Interop.Excel. Stisknutím klávesy F4 zobrazte okno Vlastnosti .
  2. V okně Vlastnosti změňte vlastnost Vložit typy zprostředkovatele komunikacez true na False.
  3. Opakujte kroky 1 a 2 v tomto postupu pro Microsoft.Office.Interop.Word.
  4. Stisknutím klávesy F5 ověřte, že projekt stále běží správně.
  5. Opakováním kroků 1 až 3 z předchozího postupu otevřete okno sestavy. Všimněte si, že Microsoft.Office.Interop.Word a Microsoft.Office.Interop.Excel již nejsou v seznamu vložených sestavení.
  6. Poklikejte na ikonu MANIFEST a projděte si seznam odkazovaných sestavení. Microsoft.Office.Interop.Excel V seznamu jsou i Microsoft.Office.Interop.Word . Vzhledem k tomu, že aplikace odkazuje na excelové a Word PIA a vlastnost Vložit typy zprostředkovatele komunikace je nastavena na hodnotu False, obě sestavení musí existovat v počítači koncového uživatele.
  7. V sadě Visual Studio klikněte na Vyčistit řešení v nabídce Sestavení a vyčistíte dokončený projekt.

Viz také