Atualizando distribuídos macros VBA do Word - é possível, como é que você faz isso?

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

Pergunta

Eu tenho uma macro VBA que é executado no Word 2003. É um módulo eo código anexado para um formulário, e ele vai para cerca de 30 sites de clientes. Quando eu rolei primeiro isso mandei alguém rodada para cada site para colocar um modelo .dot na pasta de arranque do Word de cada uma das 30 caixas, que, em seguida, faz com que a macro aparece como um botão na barra de ferramentas para cada usuário.

Todos os usuários estão conectado à Internet.

O local do modelo .dot varia de máquina para máquina, de modo que "instaladores" seria fora de jogo eu presumo?

Eu estou antecipando que a macro fez necessidade de mudança ao longo do tempo. Existe alguma maneira eu poderia obter o usuário pressionar um botão para obter a macro para atualizar-se?

Se o seu botão de pressão ou de execução automática a verificação de atualização, eu presumivelmente precisa saber como determinar onde a macro está sendo executado a partir de (path) sem um documento necessariamente ter sido salvo, e como encontrar caminho para o Startup pasta de ferramentas > Opções> locais de arquivos, mas através de programação.

Foi útil?

Solução

Isto pode ser feito.

  1. criar 2 .dot, loader.dot (verifica se há atualizações) e worker.dot (a macro principal que você está usando e quer ser capaz de atualizar automaticamente).

  2. o primeiro loader.dot deve ir para C: \ Program Files \ Microsoft Office \ OFFICE11 \ STARTUP

Este é um local confiável ea macro será carregado em qualquer documento do Word. Usar uma sub-rotina de execução auto () para garantir que ele é executado sempre que uma palavra doc é carregado.

worker.dot pode ir em qualquer local de instalação fixa, por exemplo, C: \ yourapp \ worker.dot

A lógica em loader.dot é remover qualquer referência a worker.dot (eu tinha para permitir a confiança de modelo VBA em configurações de segurança de macro) verificar se há uma atualização usando uma chamada http, se nova versão de download disponível, substituindo worker.dot , em seguida, adicionar referência de arquivo especificando worker.dot

Outras dicas

Eu não tenho certeza que o modelo de um botão de usuário prensas é ideal.

Eu olhar para a construção de um "loader" template. Seu trabalho seria executado na inicialização e olhar se há atualizações para o modelo / macro você já tem e download / instalação / whatever esses arquivos quando eles mudam. Em seguida, carregar tudo o que está instalado localmente para uso.

Você também deve pensar sobre se é um problema se uma atualização está disponível, mas alguém não usá-lo (talvez eles começaram a Palavra antes da mudança foi carregado, ou eles estão offline). Além disso, você precisa saber qual é a versão pessoas estão usando? Ter o seu relatório carregador de volta, via HTTP, e-mail ou algum outro método (Twitter?)

Todas essas necessidades carregador para qualquer muito estável (caso contrário, você apenas substituir perseguindo em torno de substituir o modelo alvo com perseguindo em torno substituindo o carregador) ou capaz de atualizar-se quando necessário.

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