Pergunta

Eu tenho um projeto que adiciona funcionalidade para o Microsoft Word usando uma expansão XML Pack. Atualmente, quando o documento que dar ao cliente é aberto, ele carrega o nosso pacote, que executa o método SmartDocInitialize que adiciona coisas ao menu principal e barra de ferramentas usando Microsoft.Office.Core.CommandBar.Controls.Add e similares. Sem modificações, quando aberto no Word 2007 esses botões são adicionados na guia da faixa Add-Ins, mas isso não é ideal, pois os botões são todos pequenos, não agrupadas corretamente, e não há maneira de trazer a guia Add-Ins para a frente quando o documento é carregado.

Eu gostaria de manter esta funcionalidade o mesmo se o documento é aberto no Office 2003, mas se o documento é aberto no Office 2007, eu gostaria de ler em um arquivo XML que descreve o meu guia da fita nova e toda a botões. Tudo o que eu tenho sido capaz de encontrar em linha pareceu a vantagem para o arquivo de fita única que está sendo carregado, se você tem uma combinação muito específica de magia (compilação no Visual Studio e ele funciona, mas nenhuma informação sobre como você implantá-lo para um usuário box) e só irá funcionar se você tem um projeto inteiro criado originalmente com as ferramentas do Visual Studio para propriedades do Office, que eu não tenho atualmente.

O ambiente de desenvolvimento é XP, Visual Studio 2005, C #, .NET 2.0

Foi útil?

Solução

A interface Ribbon não é apenas tão programática como o velho CommandBars UI. Eu não acho que você pode fazer o que quiser. Tanto quanto eu sei que a única maneira de programaticamente modificar a interface do usuário da fita é ter um (COM) Add-in implementa a interface IRibbonExtensibility e retornar um arquivo XML personalizado (com a definição da fita) a partir do método GetCustomUI. Não há nenhuma maneira de adicionar ou remover botões de um de cada vez como você poderia com a interface do usuário CommandBars. É apenas totalmente diferente. Eu não acredito que você pode fazer o que quiser a partir de alguns macros em um documento.

Eu não estou familiarizado com pacotes de expansão XML, mas se você tem que instalá-los no PC do usuário, talvez você possa instalar um add-in, bem que poderia carregar o XML fita adequada para você.

Outras dicas

Isto não é tão difícil quanto parece.

Se você já tem sua fita botões ligado a alguns macros VBA no documento, então você só precisa adicionar uma referência em seu projeto VBA para o seu com .net visível montagem.

O .net montagem, além de ser marcada com visível (por isso aparece como uma biblioteca tipo na caixa de diálogo referências), tem que ter alguns métodos que são configuração a ser exigível a partir de VBA.

google "vba .net que pode ser chamado"

não é difícil, classe marca como com visível, declará-la com um atributo ProgID, métodos de tornar público, certifique-se seus métodos retornam tipos simples e uso regasm para registrar o assembly na máquina de destino (não é necessário na caixa dev) .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top