Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
Indítsa el a Visual Studiót.
A Fájl menüben mutasson az Új pontra, majd kattintson a Project (Projekt) elemre.
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.
A Sablonok panelen kattintson az Excel-verzió <> bővítmény elemre.
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.
Ha szeretné, írja be a projekt nevét a Név mezőbe.
Kattintson az OK gombra.
Az új projekt megjelenik a Megoldáskezelő.
Hivatkozások hozzáadása
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.
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).Kattintson az OK gombra.
A szükséges importálási utasítások hozzáadása vagy irányelvek használata
A Megoldáskezelő kattintson a jobb gombbal a ThisAddIn.vb vagy a ThisAddIn.cs fájlra, majd kattintson a Kód megtekintése parancsra.
Adja hozzá a következő
Importsutasításokat a kódfájl elejéhez, ha még nincsenek jelen.Imports Microsoft.Office.Interop
Bankszámlalista létrehozása
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.
Cserélje le az
Accountosztá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 ClassHa két fiókot tartalmazó listát szeretne létrehozni
bankAccounts, adja hozzá a következő kódot a metódushoz aThisAddIn_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
Ugyanebben a fájlban adja hozzá a következő metódust az
ThisAddInosztá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 SubAz 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 ésOffsettulajdonságai az indexelt tulajdonságok funkciót használják. Az indexelt tulajdonságok lehetővé teszik azValueobjektum tulajdonságánakRangehasználatát is, így nincs szükség aValue2tulajdonság használatára. AValuetulajdonsá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.
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
Adja hozzá a következő kódot a
ThisAddIn_StartUpmetódus végén. A hívásDisplayInExcelké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. AzIDegyes fiókok ésbalanceé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)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
A metódus végén
ThisAddIn_StartUpadja 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
- 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
- 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
Futtassa újra az alkalmazást, de ne kattintson a Tiszta megoldás elemre.
Válassza a Start lehetőséget. Keresse meg a Microsoft Visual Studio <verzióját> , és nyisson meg egy fejlesztői parancssort.
Írja be
ildasma Visual Studio fejlesztői parancssorát, majd nyomja le az ENTER billentyűt. Megjelenik az IL DASM ablak.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ésMicrosoft.Office.Interop.Wordazok 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.
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ésMicrosoft.Office.Interop.Wordnem 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.
Zárja be a jegyzékablakot és a szerelvényablakot.
A PIA-függőség visszaállítása
- 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.
- 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.
- Ismételje meg az eljárás 1. és 2. lépését a esetében.
Microsoft.Office.Interop.Word - Nyomja le az F5 billentyűt annak ellenőrzéséhez, hogy a projekt továbbra is megfelelően fut-e.
- 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ésMicrosoft.Office.Interop.Excela már nem szerepel a beágyazott szerelvények listájában. - Kattintson duplán a JEGYZÉK ikonra, és görgessen végig a hivatkozott szerelvények listáján. Mindkettő
Microsoft.Office.Interop.WordésMicrosoft.Office.Interop.Excelszerepel 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. - 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
- Automatikusan implementált tulajdonságok (Visual Basic)
- Gyűjtemény inicializálói
- Opcionális paraméterek
- Argumentumok átadása pozíció és név szerint
- Korai és késői kötés
- Lambda-kifejezések
- Útmutató: Beágyazási típusok felügyelt szerelvényekből
- Útmutató: Az első VSTO-bővítmény létrehozása az Excelhez
- COM Interop