Word-Automation - Ribbons oder CommanBars

tecla

Erfahrenes Mitglied
Hallo alle miteinander

Meine Applikation schreibt Daten aus Worddokumenten in eine Datenbank und umgekehrt. Bisher habe ich das mit Word-Automatisation gelöst und die Kommandozeilen im Word mit

Code:
wordApp.CommandBars.Add()

erstellt. Das hat wunderbar geklappt - auch mit Office 2007 und 2010.

Nun habe ich eine Installation, bei der die Erstellung der Kommandozeile spukt. Manchmal - aber nicht immer - kann die Kommandozeile nicht angesprochen werden und bei

Code:
myCommandBar.Name
oder
Code:
myCommandBar.Visible

krieg ich ne COMException, ähnlich wie hier beschrieben.

Die vorgeschlagene Lösung mit der Warteschlaufe bringt dann auch nicht immer was :(
Weitere Lösungsvorschläge hierzu sind ebenfalls willkommen.

Aber nun zu meiner eigentlichen Frage: Ist denn die Kommandozeilenerstellung mit obigem Code altmodisch und sollte im Zeitalter der Ribbons gar nicht mehr verwendet werden?

Da meine Applikation hauptsächlich ein Datenbank-Gui ist, und ich immer meine Datenbankobjekte benötige, habe ich bisher ein WordAddin immer ausgeschlossen. Gibt es denn auch eine Möglichkeit das Word-Ribbons zur Laufzeit zu erweitern und eigene Multifunktionsleiten zu erstellen bzw. vorher erstellte Ribbons aufzurufen und zu laden - und zwar nur dann wenn sie benötigt werden? Ich google schon seit Tagen und bin nicht wirklich fündig geworden.

Und ich bin auch immer noch unschlüssig welches denn nun der richtige Weg ist: das Kommandozeilen-Problem lösen oder neu mit den Ribbons arbeiten, und da einen gangbaren Weg zu finden.

Über Diskossionsbeiträge, Tipps, tolle Links, Tutorials würde ich mich sehr freuen.
 
Ich sehe kein Hinderniss, ein Add-In für Word zu schreiben. Du kannst dich so in die Ribbons hängen und dein Programm kann eigene Einträge anbieten. Dein Add-In beschreibt, inwiefern die Ribbons erweitert werden bzw. was genau angeboten wird. Die Einträge sind immer dann vorhanden, wenn dein Add-In geladen wurde.

Grundsätzlich kannst du auch alles machen, was deine Anwendung benötigt. D.h. Datenbankzugriffe sind natürlich möglich, auch kannst du selbst - wie gewohnt - mit deinen Objekten arbeiten, ob du nun reine Data Objects hasts, oder komplexeres Zeugs.

Such dir am besten ein paar Web-Ressourcen zu diesem Thema (sind en masse vorhanden) und du solltest relativ schnell zu einem Ergebnis kommen.
 
Hallo Norbert

Danke für Deine Rückmeldung. Es stimmt, es gibt haufenweise Zeugs dazu im Netz, trotzdem kann ich mir nicht genau vorstellen, wie das funktionieren könnte.

Das AddIn ist ja ein eigenes Projekt mit Setup, welche dann auf dem Zielrechner installiert wird und beim Öffnen eines Worddokuments geladen wird.
Nun habe ich ja aber meine exe, die hauptsächlich als Datenbank-Gui fungiert und aber auch Worddokumente öffnet, da was reinschreibt (geht alles noch ohne Addin) und eine eigene Kommandozeile mit Click-Events erstellt. So habe ich zum Beispiel einen eigenen "Speichern" - Knopf, der das Dokument abspeichert und Teile des Inhalts wieder aus dem Dokument liest und in die Datenbank schreibt. Dazu bräuchte ich jetzt die Ribbons eines Addins (wenn mein CommandBar-Code nicht mehr sauber läuft, was auf Rechnern mit Windows 7 64-bit und Office 2010 32-Bit der Fall zu sein scheint :( ).

Wenn die Menuzeile nicht von meiner exe erstellt werden soll, sondern jetzt eben von dem Addin - wie soll denn nun meine exe davon erfahren, wenn auf ein Kommando geklickt wird? Geht das überhaupt?
Und wenn ja, hast du mir ein paar Google-Schlagwörter-Tipps?

Die ganze exe ins Addin zu bauen, macht auch keinen Sinn, da meine Anwendung nicht im Word starten soll, sondern im DB-GUI.

Ein Addin-Projekt in mein Anwendungsprojekt hinzuzufügen habe ich auch nicht geschafft. Zumindest nicht so, dass die Anwendung nachher mit dem Word-Objekt bzw. dem Document-Objekt des AddinIns kommunizieren könnte. Vielleicht wäre das der gangbare Weg?

Ich bräuchte also eine exe die mit einem Addin kommuniziert. Ich verstehe nicht, wie die grundsätzliche Architektur aufgebaut sein müsste - und finde deshalb vor lauter Bäumen den Wald nicht im Internet-Dschungel...

grüsse, tecla
 

Neue Beiträge

Zurück