Benutzer mit den meisten Antworten
VSTO-Programmierung für Excel

Frage
-
Hallo,
seit kurzem befasse ich mich mit VSTO-Programmierung mit C#.
Ich habe folgendes Problem. In Visual Studio öffnete ich ein Projekt Excel Add-In und den Ribbon-Designer.
Ich habe ein kleines Programm geschrieben (klick auf einen Button - keine Fehlermeldung bei der Ausführung) das Zellen einer Excelmappe füllt und anschließend speichert. Bei der Ausführung passiert, außer das die Excel-Mappe gespeichert wird, nichts. Erst wenn ich die Excelmappe normal öffne, sehe ich, dass der Code ausgeführt und die Zellen gefüllt wurden.
Bei der Ausführung werden zwei DLL-Dateien erstellt die ich aber nicht als ADD-Ins in Excel einbinden kann.Wie muss ich vorgehen, damit ich Add-Ins einbinden kann und welche Dateien. Muss ich aus den Add-Ins eine ausführende Datei erstellen? Und wie?
Ich hoffe ich habe mein Problem richtig geschildert.
Danke
seppmerkel
Antworten
-
Hallo seppmerkel,
es gibt zwei Möglichkeiten ein COM-Addin zu installieren. Entweder zentral auf einem Rechner wozu man Admin-Rechte benötigt, oder Userbezogen als Click-Once Anwendung.
Beides war in meinem gegeben Umfeld nicht möglich, weshalb ich mir ein eigenes kleines Programm geschrieben habe.
Das Programm kopiert alle Files, die beim Erstellen des Addins im Distributionsverzeichnis bereitgestellt werden in einen Pfad auf den der Benutzer immer zugriff hat, also z.B. in sein Profile.
Als nächstes müssen einige Registry-Keys erzeugt werden. Dazu hier mal ein Beispiel:
[HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\DemoAddIn] "Description"="Dies ist ein Demo AddIn" "FriendlyName"="DemoAddIn" "LoadBehavior"=dword:00000003 "Manifest"="file:///C:/Users/myusername/AppData/Local/Addins/DemoAddIn/DemoAddIn.vsto|vstolocal"
Das AddIn im Beispiel heißt DemoAddIn, die oben genannten Files müssen in dem Pfad stehen, der im Manifest-Key eingetragen wird. Das kannst Du ja zunächst auch alles einmal händisch durchführen.Wenn die Registry-Keys eingetragen sind, sollte beim nächsten Start von Excel die Frage kommen, ob DemoAddin wirklich installiert werden soll. Wenn Du das bestätigst ist das Addin für diesen einen User installiert, das heißt die Registry-Keys müssen für jeden User der das AddIn nutzen will eingetragen werden.
Grüße
Roland
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 6. November 2017 06:45
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 17. November 2017 13:36
Alle Antworten
-
Hallo seppmerkel,
Möchtest Du das Add-In auf dem gleichen Rechner (Entwicklungsrechner) installieren? Wie in diesem Artikel erwähnt wird:
Wenn Sie das Projekt erstellen, wird der Code in eine Assembly kompiliert, die im Buildausgabeordner des Projekts enthalten ist. Visual Studio erstellt auch einen Satz von Registrierungseinträgen, mit deren Hilfe Excel das VSTO-Add-In ermitteln und laden kann.
Ist Dein Add-In in Excel unter Datei -> Optionen -> Add-Ins -> "Verwalten (Excel Add-Ins)" zu finden?
Gruß,
DimitarBitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Hallo Dimitar
vorerst Danke für die Antwort.
Mein Add-In ist leider nicht in Datei-> Optionen->Add-Ins...... zu finden.
Wie gesagt, bekomme ich beim kompilieren 2 DLL-Dateien, die ich aber nicht wie oben beschrieben einfügen kann.
Ja, ich möchte das Add-In dann auf einem anderen Rechner installieren. Für mich ist das Alles noch ein Rätsel.
Gruß
seppmerkel
-
Hallo seppmerkel,
es gibt zwei Möglichkeiten ein COM-Addin zu installieren. Entweder zentral auf einem Rechner wozu man Admin-Rechte benötigt, oder Userbezogen als Click-Once Anwendung.
Beides war in meinem gegeben Umfeld nicht möglich, weshalb ich mir ein eigenes kleines Programm geschrieben habe.
Das Programm kopiert alle Files, die beim Erstellen des Addins im Distributionsverzeichnis bereitgestellt werden in einen Pfad auf den der Benutzer immer zugriff hat, also z.B. in sein Profile.
Als nächstes müssen einige Registry-Keys erzeugt werden. Dazu hier mal ein Beispiel:
[HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\DemoAddIn] "Description"="Dies ist ein Demo AddIn" "FriendlyName"="DemoAddIn" "LoadBehavior"=dword:00000003 "Manifest"="file:///C:/Users/myusername/AppData/Local/Addins/DemoAddIn/DemoAddIn.vsto|vstolocal"
Das AddIn im Beispiel heißt DemoAddIn, die oben genannten Files müssen in dem Pfad stehen, der im Manifest-Key eingetragen wird. Das kannst Du ja zunächst auch alles einmal händisch durchführen.Wenn die Registry-Keys eingetragen sind, sollte beim nächsten Start von Excel die Frage kommen, ob DemoAddin wirklich installiert werden soll. Wenn Du das bestätigst ist das Addin für diesen einen User installiert, das heißt die Registry-Keys müssen für jeden User der das AddIn nutzen will eingetragen werden.
Grüße
Roland
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 6. November 2017 06:45
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 17. November 2017 13:36