Útmutató: Office-programozás a Visual Basicben

A Visual Studio a Visual Basic olyan funkcióit kínálja, amelyek javítják a Microsoft Office programozását. A Visual Basic funkciói közé tartoznak az automatikusan implementált tulajdonságok, a lambdakifejezésekben található utasítások és a gyűjtemény inicializálói. Beágyazhat típusadatokat, amelyek lehetővé teszik a COM-összetevőkkel interakcióba lépő szerelvények üzembe helyezését anélkül, hogy elsődleges interop szerelvényeket (PIA-kat) helyeznek üzembe a felhasználó számítógépén. További információ : Útmutató: Típusok beágyazása felügyelt szerelvényekből.

Ez az útmutató bemutatja ezeket a funkciókat az Office-programozással összefüggésben, de számos ilyen funkció az általános programozásban is hasznos. Az útmutatóban egy Excel-bővítményalkalmazással hozhat létre Excel-munkafüzetet. Ezután létrehoz egy Word dokumentumot, amely a munkafüzetre mutató hivatkozást tartalmaz. Végül láthatja, hogyan engedélyezheti és tilthatja le a PIA-függőséget.

Előfeltételek

Az útmutató elvégzéséhez telepítenie kell a Microsoft Office Excelt és a Microsoft Office Word a számítógépre.

Megjegyzés

Előfordulhat, hogy a számítógép különböző neveket vagy helyeket jelenít meg a Visual Studio felhasználói felületének egyes elemeihez az alábbi utasításokban. Ezeket az elemeket az Ön által használt Visual Studio-kiadás és a használt beállítások határozzák meg. További információ: Az IDE személyre szabása.

Excel-bővítmény alkalmazás beállítása

  1. Indítsa el a Visual Studiót.

  2. A Fájl menüben mutasson az Új pontra, majd kattintson a Project (Projekt) elemre.

  3. A Telepített sablonok panelen bontsa ki a Visual Basic elemet, bontsa ki az Office elemet, majd kattintson az Office-termék verzióévére.

  4. A Sablonok panelen kattintson az Excel-verzió <> bővítmény elemre.

  5. A Sablonok panel tetején győződjön meg arról, hogy .NET-keretrendszer 4-es vagy újabb verzió jelenik meg a Cél keretrendszer mezőben.

  6. Ha szeretné, írja be a projekt nevét a Név mezőbe.

  7. Kattintson az OK gombra.

  8. Az új projekt megjelenik a Megoldáskezelő.

Hivatkozások hozzáadása

  1. A Megoldáskezelő kattintson a jobb gombbal a projekt nevére, majd kattintson a Hivatkozás hozzáadása parancsra. Megjelenik a Hivatkozás hozzáadása párbeszédpanel.

  2. A Szerelvények lapon válassza a Microsoft.Office.Interop.Excel verziót <version>.0.0.0 (az Office-termék verziószámainak kulcsát lásd: Microsoft Verziók) az Összetevő neve listában, majd tartsa lenyomva a CTRL billentyűt, és válassza a Microsoft.Office.Interop.Word, version <version>.0.0.0parancsot. Ha nem látja a szerelvényeket, előfordulhat, hogy gondoskodnia kell arról, hogy telepítve és megjelenjenek (lásd : Útmutató: Az Office elsődleges interop-szerelvények telepítése).

  3. Kattintson az OK gombra.

A szükséges importálási utasítások hozzáadása vagy irányelvek használata

  1. A Megoldáskezelő kattintson a jobb gombbal a ThisAddIn.vb vagy a ThisAddIn.cs fájlra, majd kattintson a Kód megtekintése parancsra.

  2. Adja hozzá a következő Imports utasításokat a kódfájl elejéhez, ha még nincsenek jelen.

    Imports Microsoft.Office.Interop
    

Bankszámlalista létrehozása

  1. A Megoldáskezelő kattintson a jobb gombbal a projekt nevére, kattintson a Hozzáadás, majd az Osztály parancsra. Nevezze el az Account.vb osztályt. Kattintson a Hozzáadás parancsra.

  2. Cserélje le az Account osztály definícióját a következő kódra. Az osztálydefiníciók automatikusan implementált tulajdonságokat használnak. További információ: Automatikusan implementált tulajdonságok.

    Public Class Account
        Property ID As Integer = -1
        Property Balance As Double
    End Class
    
  3. Ha két fiókot tartalmazó listát szeretne létrehozni bankAccounts , adja hozzá a következő kódot a metódushoz a ThisAddIn_StartupThisAddIn.vb fájlban. A lista deklarációi gyűjtemény inicializálókat használnak. További információ: Gyűjtemény inicializálói.

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

Adatok exportálása Excelbe

  1. Ugyanebben a fájlban adja hozzá a következő metódust az ThisAddIn osztályhoz. A metódus beállít egy Excel-munkafüzetet, és adatokat exportál hozzá.

    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
    
    • Az Add metódus egy választható paraméterrel rendelkezik egy adott sablon megadásához. A választható paraméterek lehetővé teszik, hogy kihagyja a paraméter argumentumát, ha a paraméter alapértelmezett értékét szeretné használni. Mivel az előző példában nincs argumentum elküldve, az alapértelmezett sablont használja, Add és létrehoz egy új munkafüzetet.

    • A RangeTartomány objektum és Offset tulajdonságai az indexelt tulajdonságok funkciót használják. Az indexelt tulajdonságok lehetővé teszik az Value objektum tulajdonságának Range használatát is, így nincs szükség a Value2 tulajdonság használatára. A Value tulajdonság indexelt, de az index nem kötelező. Az alábbi példában a választható argumentumok és az indexelt tulajdonságok együtt működnek.

  2. Adja hozzá a következő kódot a végéhez DisplayInExcel , hogy az oszlopszélességeket a tartalomnak megfelelően módosítsa.

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

    Az interop-típusok beágyazásával kapcsolatos további információkért lásd a jelen cikk "A PIA-referencia megkeresése" és a "PIA-függőség visszaállítása" című eljárásokat.

DisplayInExcel meghívása

  1. Adja hozzá a következő kódot a ThisAddIn_StartUp metódus végén. A hívás DisplayInExcel két argumentumot tartalmaz. Az első argumentum a feldolgozandó fiókok listájának neve. A második argumentum egy többsoros lambda kifejezés, amely meghatározza az adatok feldolgozásának módját. Az ID egyes fiókok és balance értékek a szomszédos cellákban jelennek meg, a sor pedig pirosan jelenik meg, ha az egyenleg nullánál kisebb.

    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. A program futtatásához nyomja le az F5 billentyűt. Megjelenik egy Excel-munkalap, amely a fiókokból származó adatokat tartalmazza.

Word-dokumentum hozzáadása

  1. A metódus végén ThisAddIn_StartUp adja hozzá a következő kódot egy Word dokumentum létrehozásához, amely az Excel-munkafüzetre mutató hivatkozást tartalmaz.

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

    A PasteSpecial metódus hét paramétert használ, amelyek mindegyike választható referenciaparaméterként van definiálva. A névvel ellátott és nem kötelező argumentumok lehetővé teszik az elérni kívánt paraméterek név szerinti kijelölését, valamint az argumentumok küldését csak ezekre a paraméterekre. Ebben a példában az argumentumok azt jelzik, hogy létre kell hozni a munkafüzetre mutató hivatkozást a vágólapon (paraméter Link), és hogy a hivatkozás ikonként (paraméterkéntDisplayAsIcon) jelenik meg a Word dokumentumban.

Az alkalmazás futtatása

  1. Az alkalmazás futtatásához nyomja le az F5 billentyűt. Az Excel elindít és megjelenít egy táblát, amely a két fiók adatait tartalmazza a fájlban bankAccounts. Ekkor megjelenik egy Word dokumentum, amely az Excel-táblázatra mutató hivatkozást tartalmaz.

A befejezett projekt törlése

  1. A Visual Studióban kattintson a Build menü Tiszta megoldás elemére. Ellenkező esetben a bővítmény minden alkalommal futni fog, amikor megnyitja az Excelt a számítógépen.

A PIA-referencia megkeresése

  1. Futtassa újra az alkalmazást, de ne kattintson a Tiszta megoldás elemre.

  2. Válassza a Start lehetőséget. Keresse meg a Microsoft Visual Studio <verzióját> , és nyisson meg egy fejlesztői parancssort.

  3. Írja be ildasm a Visual Studio fejlesztői parancssorát, majd nyomja le az ENTER billentyűt. Megjelenik az IL DASM ablak.

  4. Az IL DASM ablak Fájl menüjében válassza a Fájl>megnyitása lehetőséget. Kattintson duplán a Visual Studio <verziójára>, majd kattintson duplán a Projektek elemre. Nyissa meg a projekt mappáját, és keresse meg a projekt nevének bin/Debug mappájában.dll. Kattintson duplán a projekt nevére.dll. Az új ablakban a projekt attribútumai mellett más modulokra és szerelvényekre mutató hivatkozások is megjelennek. Vegye figyelembe, hogy a névterek Microsoft.Office.Interop.Excel és Microsoft.Office.Interop.Word azok szerepelnek a szerelvényben. A Visual Studióban alapértelmezés szerint a fordító a hivatkozott PIA-ból importálja a szükséges típusokat a szerelvénybe.

    További információ : Útmutató: Szerelvény tartalmának megtekintése.

  5. Kattintson duplán a JEGYZÉK ikonra. Megjelenik egy ablak, amely a projekt által hivatkozott elemeket tartalmazó szerelvények listáját tartalmazza. Microsoft.Office.Interop.Excel és Microsoft.Office.Interop.Word nem szerepel a listában. Mivel a projekt igényeinek megfelelő típusokat importálták a szerelvénybe, a PIA-ra való hivatkozások nem szükségesek. Ez megkönnyíti az üzembe helyezést. A PIA-knak nem kell jelen lenniük a felhasználó számítógépén, és mivel egy alkalmazásnak nincs szüksége a PIA egy adott verziójának üzembe helyezésére, az alkalmazások úgy tervezhetők, hogy az Office több verziójával is működjenek, feltéve, hogy a szükséges API-k minden verzióban léteznek.

    Mivel a PIA-k telepítése már nem szükséges, speciális forgatókönyvekben hozhat létre olyan alkalmazást, amely az Office több verziójával is működik, beleértve a korábbi verziókat is. Ez azonban csak akkor működik, ha a kód nem használ olyan API-kat, amelyek nem érhetők el az Ön által használt Office-verzióban. Nem mindig egyértelmű, hogy egy adott API elérhető volt-e egy korábbi verzióban, ezért nem ajánlott az Office korábbi verzióival dolgozni.

    Megjegyzés

    Az Office nem tett közzé PIA-kat az Office 2003 előtt. Ezért az Office 2002-hez vagy korábbi verziókhoz csak a COM-referencia importálásával lehet interop szerelvényt létrehozni.

  6. Zárja be a jegyzékablakot és a szerelvényablakot.

A PIA-függőség visszaállítása

  1. A Megoldáskezelő kattintson az Összes fájl megjelenítése gombra. Bontsa ki a Hivatkozások mappát, és válassza a Microsoft.Office.Interop.Excel lehetőséget. Nyomja le az F4 billentyűt a Tulajdonságok ablak megjelenítéséhez.
  2. A Tulajdonságok ablakban módosítsa a Beágyazásközi típusok tulajdonságot True (Igaz ) értékről False (Hamis) értékre.
  3. Ismételje meg az eljárás 1. és 2. lépését a esetében.Microsoft.Office.Interop.Word
  4. Nyomja le az F5 billentyűt annak ellenőrzéséhez, hogy a projekt továbbra is megfelelően fut-e.
  5. Ismételje meg az előző eljárás 1–3. lépését a szerelvényablak megnyitásához. Figyelje meg, hogy a Microsoft.Office.Interop.Word és Microsoft.Office.Interop.Excel a már nem szerepel a beágyazott szerelvények listájában.
  6. Kattintson duplán a JEGYZÉK ikonra, és görgessen végig a hivatkozott szerelvények listáján. Mindkettő Microsoft.Office.Interop.Word és Microsoft.Office.Interop.Excel szerepel a listában. Mivel az alkalmazás az Excelre és a Word PIA-ra hivatkozik, és a Beágyazási interop típusok tulajdonság Értéke False, mindkét szerelvénynek léteznie kell a végfelhasználó számítógépén.
  7. A Visual Studióban kattintson a Build menü Megoldás tisztítása elemére a befejezett projekt törléséhez.

Lásd még