Domanda

Ho una macro VBA che viene eseguita in Word 2003. È un modulo e il codice allegato a un modulo utente e va a circa 30 siti client.Quando l'ho implementato per la prima volta ho inviato qualcuno in ogni sito per inserire un modello .dot nella cartella Avvio di Word di ciascuna delle 30 caselle, che quindi fa apparire la macro come un pulsante sulla barra degli strumenti per ogni utente.

Tutti gli utenti sono connessi a Internet.

La posizione del modello .dot varia da macchina a macchina, quindi presumo che gli "installatori" sarebbero fuori gioco?

Sto anticipando che la macro ha reso necessario cambiare di volta in volta.C'è un modo per convincere l'utente a premere un pulsante per fare in modo che la macro si aggiorni?

Indipendentemente dal fatto che sia il pulsante o il controllo dell'esecuzione automatica per l'aggiornamento, presumibilmente avrei bisogno di sapere come determinare da dove viene eseguita la macro (percorso) senza che un documento sia stato necessariamente salvato e come trovare il percorso per gli strumenti della cartella di avvio> opzioni> percorsi dei file ma in modo programmatico.

È stato utile?

Soluzione

Questo può essere fatto.

  1. crea 2 file .dot, loader.dot (controlla gli aggiornamenti) e worker.dot (la macro principale che stai utilizzando e che desideri sia in grado di aggiornare automaticamente).

  2. il primo loader.dot dovrebbe andare in C: \ Programmi \ Microsoft Office \ OFFICE11 \ STARTUP

Questa è una posizione attendibile e la macro verrà caricata in qualsiasi documento di Word.Utilizza una subroutine AutoExec () per assicurarti che venga eseguita ogni volta che viene caricato un documento di Word.

worker.dot può andare in qualsiasi posizione di installazione fissa, ad es.C: \ yourapp \ worker.dot

La logica in loader.dot è rimuovere qualsiasi riferimento a worker.dot (dovevo abilitare l'attendibilità del modello VBA nelle impostazioni di sicurezza delle macro) verificare la presenza di un aggiornamento utilizzando una chiamata http, se è disponibile una nuova versione scaricala sovrascrivendo worker.dot, quindi aggiungi il riferimento dal file specificando worker.dot

Altri suggerimenti

Non sono sicuro che il modello che l'utente preme un pulsante sia l'ideale.

Proverei a creare un modello "caricatore".Il suo compito sarebbe quello di eseguire all'avvio e cercare gli aggiornamenti al modello / macro che hai già e scaricare / installare / qualsiasi file di questo tipo quando cambiano.Quindi carica tutto ciò che è installato localmente per l'uso.

Dovresti anche pensare se è un problema se un aggiornamento è disponibile ma qualcuno non lo usa (forse hanno avviato Word prima che la modifica fosse caricata o sono offline).Inoltre, hai bisogno di sapere quale versione stanno usando le persone?Chiedi al tuo caricatore di riportare indietro, tramite HTTP, e-mail o qualche altro metodo (Twitter?)

Qualsiasi caricatore di questo tipo deve essere molto stabile (altrimenti è sufficiente sostituire chasing around sostituendo il modello di destinazione con chasing around sostituendo il loader) o essere in grado di aggiornarsi se necessario.

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