2013-05-26 21 views
11

Ho creato un semplice database Excel che esegue alcune funzioni macro e ho bisogno di distribuire questo database a poche persone - ma non possono vedere come funziona effettivamente la funzione macro (regole stupide che devo seguire!). Qual è il modo migliore per raggiungere questo obiettivo?Il modo migliore per proteggere il codice VBA di Excel?

Ho fatto un po 'di ricerca e ho trovato due modi:

  • proteggere con password il progetto VBA; ma questo è apparentemente molto facile da rompere usando strumenti prontamente disponibili online (sarebbe nel miglior interesse per le persone che sto inviando questo per scoprire come funzionano le macro e le funzioni, quindi sono quasi sicuro al 100% che proveranno per entrare in esso .. quindi una password di protezione sembra inadeguata

  • Sposta in un linguaggio completamente compilato come C++;. le mie capacità sono molto limitate a VBA in Excel e Access quindi questa è la soluzione ideale; non è una soluzione per me :(

ci sono altri modi? ho pensato di avere un 'maestro excel documento' con tutte le macro in questo e poi inviare i database 'bambini' per th Gli utenti finali e i database "bambini" si connettono al "master" - è possibile qualcosa di simile? Ospitando il master online o inviando agli utenti finali il master ma rendendolo completamente inaccessibile se non si accede ai database "figli"?

+3

assumere un avvocato per imbarcazioni e fornire indicazioni su esecuzione di un contratto di licenza. Una persona abbastanza intelligente può aprire * qualsiasi * scatola che gli viene data - richiede solo tempo e fatica. (Obfuscator e simili aumentano il tempo/lo sforzo con l'intento che supererà grossolanamente il vantaggio ..) – user2246674

+0

Controlla su VSTO per creare componenti aggiuntivi e poi usa ClickOnce per distribuirli –

+1

Controlla http://hivelink.io, ti consente di creare un foglio di calcolo dell'interfaccia utente senza calcoli e di definire facilmente gli input/output per collegarli al tuo database con l'autenticazione, ecc. Ho scritto un post esteso qui: http://stackoverflow.com/questions/16363621/protecting- code-in-an-excel-workbook/28968867 # 28968867 – stuzor

risposta

4

È possibile creare il componente aggiuntivo di automazione.

Un Automation Aggiungi Nel offre diversi vantaggi

  • Esecuzione velocità: un componente aggiuntivo di automazione In scritto in VB6 è compilato a codice macchina nativo che corre molto più veloce rispetto alla interpretato VBA languange.

  • Sicurezza: a differenza di un componente aggiuntivo XLA, non si distribuisce mai il codice sorgente agli utenti finali. Se il tuo codice ha informazioni proprietarie o il valore della proprietà intellettuale , rimane protetto in modo sicuro sul tuo computer . Non è mai distribuito all'utente. Il tuo codice può non essere mai compromesso.

http://www.cpearson.com/excel/automationaddins.aspx

+5

vb6 è obsoleto. Suggerirei invece VSTO :) –

+0

E i problemi di compatibilità? Sto esaminando la documentazione per VSTO ora, ma se avessi una risposta veloce sarebbe fantastico. - Le aggiunte di VSTO supportano le versioni precedenti di Office? - Supporta la versione MAC di Office/Open Office? – Chronix3

+1

@ Chronix3 Ho suggerito Automation Add in In bcoz la sintassi è simile a VBA e può essere eseguita più velocemente. Provaci. Sebbene VB6 sia obsoleto ma funziona ancora. Le librerie VB6 – Santosh

Problemi correlati