Ich habe ein Projekt, das Microsoft Word mithilfe eines XML-Erweiterungspakets Funktionalität hinzufügt. Derzeit, wenn das Dokument, das wir dem Kunden geben, geöffnet wird, lädt es unser Paket, das die SmartDocInitialize-Methode ausführt, die Dinge zum Hauptmenü und zur Symbolleiste hinzufügt, die Microsoft.Office.Core.CommandBar.Controls.Add und ähnliches verwenden. Ohne Änderungen werden diese Schaltflächen beim Öffnen in Word 2007 auf der Registerkarte "Add-Ins" hinzugefügt. Dies ist jedoch nicht ideal, da die Schaltflächen alle klein sind, nicht ordnungsgemäß gruppiert sind und es keine Möglichkeit gibt, die Registerkarte "Add-Ins" aufzurufen die Vorderseite, wenn das Dokument geladen ist.Programmgesteuertes Hinzufügen einer Multifunktionsleiste zu Microsoft Word 2007
Ich möchte diese Funktionalität beibehalten, wenn das Dokument in Office 2003 geöffnet wird, aber wenn das Dokument in Office 2007 geöffnet wird, möchte ich eine XML-Datei einlesen, die meine neue Multifunktionsleisten-Registerkarte und alle Funktionen beschreibt die Knöpfe. Alles, was ich online gefunden habe, scheint dazu geführt zu haben, dass die Ribbon-Datei nur dann geladen wird, wenn Sie eine sehr spezielle Kombination von Magie haben (in Visual Studio bauen und es funktioniert, aber keine Informationen darüber, wie Sie es für einen Benutzer bereitstellen würden) Box) und funktioniert nur, wenn Sie ein ganzes Projekt ursprünglich mit den Visual Studio-Tools für Office-Eigenschaften erstellt haben, die ich derzeit nicht habe.
Unsere Entwicklungsumgebung ist XP, Visual Studio 2005, C#, .NET 2.0
Alles, was ich für das COM-Add-In gesehen habe, sagen, dass sie mit der Anwendung geladen sind, nicht pro Dokument. So kann ich leider nicht umgehen. Ich habe herausgefunden, wie man die Multifunktionsleiste pro Dokument hinzufügt, aber auf diese Weise scheint die onAction-Funktion ein VBA-Makro zu sein, und es fällt mir schwer herauszufinden, wie ich mein VBA-Makro aufrufen kann meine Ereignishandler in C#. Wenn Sie etwas darüber wissen, fügen Sie bitte eine Antwort zu dieser Frage hinzu: http://stackoverflow.com/questions/1288717/is-it-possible-to-call-c-dlls-from-visual-basic-code-contained -in-a-word-2007-fi –
Meine Vermutung ist, dass Sie die .NET-Klassen COM in irgendeiner Weise sichtbar machen müssen, damit VBA (was COM-Basen ist) sehen und mit ihnen arbeiten kann. Das ist aber außerhalb meiner Expertise. –
Ich habe das gefunden. Nur zur Information. https://social.msdn.microsoft.com/Foren/office/de-DE/ddf4a3fe-16af-440d-9697-9a3bf53b52c3/anpassen-Microsoft-Word-2007-in-cnet-Windows-Anwendung-mit-Microsoft Office-Interopword? Forum = Worddev Nicht möglich, denke ich. .. –