Livello di programmazione l'aggiunta di una barra multifunzione per Microsoft Word 2007

StackOverflow https://stackoverflow.com/questions/1268919

  •  13-09-2019
  •  | 
  •  

Domanda

Ho un progetto che aggiunge funzionalità a Microsoft Word utilizzando un pacchetto di espansione XML. Attualmente, quando il documento che diamo al cliente viene aperto, viene caricato il nostro pacchetto, che esegue il metodo SmartDocInitialize che aggiunge le cose al menu principale e barra degli strumenti utilizzando Microsoft.Office.Core.CommandBar.Controls.Add e simili. Senza modifiche, quando viene aperto in Word 2007 questi pulsanti vengono aggiunti alla scheda della barra multifunzione Componenti aggiuntivi, ma questo non è l'ideale in quanto i tasti sono tutti piccoli, non raggruppate correttamente, e non c'è modo di portare la scheda Componenti aggiuntivi per la parte anteriore quando il documento viene caricato.

Vorrei mantenere questa funzionalità lo stesso se il documento viene aperto in Office 2003, ma se il documento viene aperto in Office 2007, mi piacerebbe leggere in un file XML che descrive la mia nuova scheda della barra multifunzione e tutti i pulsanti. Tutto quello che sono riuscito a trovare on-line è sembrato di portare al file del nastro solo di essere caricati se si dispone di una specifica combinazione di magia (build in Visual Studio e funziona, ma nessuna informazione su come si dovrebbe distribuirlo a un utente box) e funziona solo se si dispone di un intero progetto creato in origine con gli strumenti Visual Studio per le proprietà di Office, che io attualmente non hanno.

Il nostro ambiente di sviluppo è XP, Visual Studio 2005, C #, .NET 2.0

È stato utile?

Soluzione

Il nastro interfaccia utente non è solo come programmatico come il vecchio CommandBars UI. Non credo che si può fare quello che vuoi. Per quanto ne so l'unico modo per modificare l'interfaccia utente Ribbon programatically è di avere un (COM) Add-in implementa l'interfaccia IRibbonExtensibility e restituire un file XML personalizzato (con la definizione del nastro) dal metodo GetCustomUI. Non c'è modo di aggiungere o rimuovere i pulsanti uno alla volta, come si potrebbe con il CommandBars UI. E 'solo totalmente diverso. Io non credo che si possa fare quello che vuoi da alcune macro in un documento.

Non ho dimestichezza con pacchetti di espansione XML, ma se dovete installarli sul PC dell'utente, forse si potrebbe installare un componente aggiuntivo, così che è riuscito a caricare il codice XML nastro appropriato per voi.

Altri suggerimenti

Questo non è così difficile come sembra.

Se avete già i pulsanti nastro collegato ad alcune macro VBA nel documento, quindi è solo bisogno di aggiungere un riferimento nel progetto VBA per il vostro com assembly .NET visibile.

L'assembly .NET oltre ad essere segnata com visibile (in modo che si presenta come una libreria di tipi nella finestra di dialogo riferimenti), deve avere alcuni metodi che sono settati per essere richiamabile da VBA.

Google "VBA .net callable"

la sua non è difficile, Indice esempio com visibile, dichiareremo con un attributo ProgID, rendere i metodi pubblici, assicurarsi che i metodi restituiscono tipi semplici, e utilizzare regasm per registrare l'assembly sul computer di destinazione (non necessario su scatola dev) .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top