Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När du utökar Microsoft Office Word eller Microsoft Office Excel med hjälp av en anpassning på dokumentnivå kan du utföra följande uppgifter:
Automatisera programmet med hjälp av dess objektmodell.
Lägg till kontroller i dokumentets yta.
Anropa VBA-kod (Visual Basic for Applications) i dokumentet från anpassningssammansättningen.
Anropa kod i anpassningssammansättningen från VBA.
Hantera vissa aspekter av dokumentet när det finns på en server som inte har Microsoft Office installerat.
Anpassa användargränssnittet (UI) för programmet.
Gäller för: Informationen i det här avsnittet gäller för projekt på dokumentnivå för Excel och Word. Mer information finns i Funktioner som är tillgängliga efter Office-program och projekttyp.
Vissa aspekter av att skriva kod i projekt på dokumentnivå skiljer sig från andra typer av projekt i Visual Studio. Många av dessa skillnader beror på hur Office-objektmodellerna exponeras för hanterad kod. Mer information finns i Skriva kod i Office-lösningar.
Allmän information om anpassningar på dokumentnivå och andra typer av lösningar som du kan skapa med hjälp av Office-utvecklingsverktygen i Visual Studio finns i Översikt över utveckling av Office-lösningar (VSTO).
Använda de genererade klasserna i projekt på dokumentnivå
När du skapar ett projekt på dokumentnivå genererar Visual Studio automatiskt en klass i projektet som du kan använda för att börja skriva koden. Visual Studio genererar olika klasser för Word och Excel:
I projekt på dokumentnivå för Word anropas
ThisDocumentklassen som standard.Projekt på dokumentnivå för Excel har flera genererade klasser: en för själva arbetsboken och en för varje kalkylblad. Som standard har dessa klasser följande namn:
ThisWorkbookSheet1Sheet2Sheet3
Den genererade klassen innehåller händelsehanterare som anropas när dokumentet öppnas eller stängs. Om du vill köra kod när dokumentet öppnas lägger du till kod i
Startuphändelsehanteraren. Om du vill köra kod precis innan dokumentet stängs lägger du till kod iShutdownhändelsehanteraren. Mer information finns i Händelser i Office-projekt.
Förstå utformningen av de genererade klasserna
I projekt som riktar sig mot .NET Framework 4 eller .NET Framework 4.5 är värdobjekttyperna i Visual Studio Tools for Office-körningen gränssnitt, så de genererade klasserna kan inte härleda implementeringen från dem. I stället härleds de genererade klasserna de flesta av sina medlemmar från följande basklasser:
ThisDocument: härleds från DocumentBase.ThisWorkbook: härleds från WorkbookBase.Sheetn: härleds från WorksheetBase.Dessa basklasser omdirigerar alla anrop till sina medlemmar till interna implementeringar av motsvarande värdobjektgränssnitt i Visual Studio Tools för Office-körning . Om du till exempel anropar Protect-metoden i
ThisDocument-klassen, omdirigerar DocumentBase-klassen det här anropet till den interna implementeringen av Document-gränssnittet i Visual Studio Tools for Office-körtiden.
Få åtkomst till objektmodellen för värdprogrammet
Om du vill komma åt objektmodellen för värdprogrammet använder du medlemmar i den genererade klassen i projektet. Var och en av dessa klasser motsvarar ett objekt i objektmodellen i Excel eller Word, och de innehåller de flesta av samma egenskaper, metoder och händelser. Klassen i ett projekt på dokumentnivå för Word innehåller till exempel ThisDocument de flesta av samma medlemmar som Document objektet i Word-objektmodellen.
Följande kodexempel visar hur du använder Word-objektmodellen för att spara dokumentet som ingår i en anpassning på dokumentnivå för Word. Det här exemplet är avsett att köras från ThisDocument klassen.
Om du vill göra samma sak utanför ThisDocument klassen använder du Globals objektet för att komma åt ThisDocument klassen. Du kan till exempel lägga till den här koden i en åtgärdsfönsterkodfil om du vill inkludera knappen Spara i användargränssnittet för åtgärdsfönstret.
ThisDocument Eftersom klassen hämtar de flesta av sina medlemmar från Document värdobjektet Save är metoden som anropas i den här koden verkligen Save metoden för Document värdobjektet. Den här metoden motsvarar -metoden Save för Document objektet i Word-objektmodellen.
Mer information om hur du använder objektmodellerna i Word och Excel finns i Översikt över Word-objektmodell och Översikt över Excel-objektmodell.
Mer information om objektet finns i GlobalsGlobal åtkomst till objekt i Office-projekt.
Lägga till kontroller i dokument
Om du vill anpassa användargränssnittet för dokumentet kan du lägga till Windows Forms-kontroller eller värdkontroller på dokumentytan. Genom att kombinera olika uppsättningar kontroller och skriva kod kan du binda kontrollerna till data, samla in information från användaren och svara på användaråtgärder.
Värdkontroller är klasser som utökar vissa objekt i Word- och Excel-objektmodellen. Till exempel tillhandahåller värdkontrollen ListObject alla funktioner av ListObject i Excel. Värdkontrollen har dock ListObject även ytterligare funktioner för händelser och databindning.
Mer information finns i Översikt över värdobjekt och värdkontroller och Windows-formulärkontroller i Office-dokument.
Kombinera anpassningar på VBA- och dokumentnivå
Du kan använda VBA-kod i ett dokument som ingår i en anpassning på dokumentnivå. Du kan anropa VBA-kod i dokumentet från anpassningssammansättningen och du kan också konfigurera projektet för att aktivera VBA-kod i dokumentet för att anropa kod i anpassningssammansättningen.
Mer information finns i Kombinera VBA- och dokumentnivåanpassningar.
Hantera dokument på en server
Du kan hantera flera olika aspekter av anpassningar på dokumentnivå på en server som inte har Microsoft Office Word eller Microsoft Office Excel installerat. Du kan till exempel komma åt och ändra data i dokumentets datacachen. Du kan också hantera anpassningssammansättningen som är associerad med dokumentet. Du kan till exempel programmatiskt ta bort sammansättningen från dokumentet så att dokumentet inte längre kör koden, eller så kan du programmatiskt koppla en sammansättning till ett dokument.
Mer information finns i Hantera dokument på en server med hjälp av klassen ServerDocument.
Anpassa användargränssnittet för Microsoft Office-program
Du kan anpassa användargränssnittet för Word och Excel på följande sätt med hjälp av en anpassning på dokumentnivå:
Lägg till värdkontroller eller Windows Forms-kontroller på dokumentytan.
Mer information finns i Automatisera Word med hjälp av utökade objekt, Automatisera Excel med hjälp av utökade objekt och Windows Forms-kontroller i Översikt över Office-dokument.
Lägg till ett åtgärdsfönster i dokumentet.
Mer information finns i Översikt över åtgärdsfönstret.
Lägg till anpassade flikar i menyfliksområdet.
För mer information, se Översikt över menyfliksområdet.
Lägg till anpassade grupper på en inbyggd flik i menyfliksområdet.
Mer information finns i Så här: Anpassa en inbyggd flik.
Mer information om hur du anpassar användargränssnittet för Microsoft Office-program finns i Anpassning av Office-användargränssnittet.
Hämta utökade objekt från interna Office-objekt i anpassningar på dokumentnivå
Många händelsehanterare för Office-händelser får ett internt Office-objekt som representerar arbetsboken, kalkylbladet eller dokumentet som skapade händelsen. I vissa fall kanske du bara vill köra kod om arbetsboken eller dokumentet i din dokumentanpassning på dokumentnivå utlöste händelsen. I en anpassning på dokumentnivå för Excel kanske du vill köra kod när användaren aktiverar ett av kalkylbladen i den anpassade arbetsboken, men inte när användaren aktiverar ett kalkylblad i en annan arbetsbok som råkar vara öppen samtidigt.
När du har ett internt Office-objekt kan du testa om objektet har utökats till ett värdobjekt eller en värdkontroll i en anpassning på dokumentnivå. Värdobjekt och värdkontroller är typer som tillhandahålls av Visual Studio Tools för Office-körning som lägger till funktioner i objekt som finns internt i Word- eller Excel-objektmodellerna (kallas interna Office-objekt). Tillsammans kallas värdobjekt och värdkontroller även för utökade objekt. Mer information om värdobjekt och värdkontroller finns i Översikt över värdobjekt och värdkontroller.
Förstå metoderna GetVstoObject och HasVstoObject
Om du vill testa ett internt Office-objekt använder du HasVstoObject metoderna och GetVstoObject i projektet:
HasVstoObjectAnvänd metoden om du vill avgöra om det interna Office-objektet har ett utökat objekt i anpassningen. Den här metoden returnerar true om det interna Office-objektet har ett utökat objekt och annars falskt .GetVstoObjectAnvänd metoden om du vill hämta det utökade objektet för ett internt Office-objekt. Den här metoden returnerar ett ListObject, Workbook, Worksheeteller Document -objekt om det angivna interna Office-objektet har ett. Annars returnerarGetVstoObjectnull. Metoden returnerar till exempelGetVstoObjecten Document om det angivna Document är det underliggande objektet för dokumentet i ditt Word-dokumentprojekt.I projekt på dokumentnivå kan du inte använda
GetVstoObjectmetoden för att skapa ett nytt Workbook, Worksheet eller Document värdobjekt under körning. Du kan bara använda den här metoden för att komma åt befintliga värdobjekt som genereras i projektet vid designtillfället. Om du vill skapa nya värdobjekt vid körning måste du utveckla ett VSTO-tilläggsprojekt. Mer information finns i Programmatiska begränsningar för värdobjekt och värdkontroller och Utöka Word-dokument och Excel-arbetsböcker i VSTO-tillägg vid körning.
Använd metoderna GetVstoObject och HasVstoObject
För att anropa metoderna HasVstoObject och GetVstoObject, använd Globals.Factory.GetVstoObject- eller Globals.Factory.HasVstoObject-metoden och skicka in det ursprungliga Word- eller Excel-objektet (som till exempel ett Document eller Worksheet) som du vill testa.