2013-05-26 15 views
11

Ich habe eine einfache Excel-Datenbank zusammengestellt, die ein paar Makrofunktionen ausführt, und ich muss diese Datenbank an einige Leute verteilen - aber sie können nicht sehen, wie die Makrofunktion tatsächlich funktioniert (dumme Regeln, denen ich folgen muss!). Was ist der beste Weg, dies zu erreichen?Beste Möglichkeit, Excel VBA-Code zu schützen?

Ich habe ein bisschen recherchiert und ich fand zwei Möglichkeiten:

  • Passwort das VBA-Projekt schützen; aber das ist anscheinend sehr leicht zu brechen mit leicht verfügbaren Tools online (es wäre im besten Interesse für die Leute, die ich das sende, um herauszufinden, wie die Makros und Funktionen funktionieren, so bin ich fast 100% sicher, dass sie es versuchen werden in sie zu erhalten .. daher unzureichend ein Passwortschutz scheint

  • Umzug in ein vollständig kompilierten Sprache wie C++;. meine Fähigkeiten sind VBA auf Excel und Access sehr begrenzt, so die ideale Lösung, da dies, ist nicht eine Lösung für mich :(

es andere Möglichkeiten? ich dachte, eine der mit ‚Master Excel-Dokument‘ mit allen Makros in das und dann ‚Kinder‘ Datenbanken senden Ate Die Endbenutzer und die "Kinder" -Datenbanken verbinden sich mit dem "Master" - ist so etwas möglich? Indem Sie den Master online hosten oder den Endbenutzern den Master schicken, ihn aber komplett unzugänglich machen, wenn Sie nicht auf die "Kinder" -Datenbanken zugreifen?

+3

einen Anwalt und zur Durchsetzung einer EULA Führung bieten Handwerk. Eine schlaue Person kann * jede * Box öffnen, die sie bekommen - braucht nur Zeit und Mühe. (Obfuscators und Ähnliches erhöhen einfach die Zeit/den Aufwand mit der Absicht, dass der Nutzen erheblich überschritten wird.) – user2246674

+0

Aktivieren Sie VSTO, um Add-Ins zu erstellen, und verwenden Sie dann ClickOnce, um sie bereitzustellen. –

+1

Überprüfen Sie http://hivelink.io, Es erlaubt Ihnen, ein Tabellenkalkulationsprogramm ohne Berechnungen zu erstellen und die Ein-/Ausgänge einfach zu definieren, um sie mit Ihrer Datenbank mit Authentifizierung usw. zu verbinden. Ich habe einen ausführlichen Beitrag hier geschrieben: http://stackoverflow.com/questions/16363621/protecting- Code-in-ein-Excel-Arbeitsbuch/28968867 # 28968867 – stuzor

Antwort

4

Sie können Automation Add In erstellen.

Eine Automation hinzufügen In mehrere Vorteile

  • Ausführungsgeschwindigkeit bietet: Eine Automation hinzufügen In in VB6 geschrieben zu nativen Maschinencode kompiliert wird, die viel schneller läuft als die interpretiert VBA languange.

  • Sicherheit: Im Gegensatz zu einer XLA hinzufügen in, die Sie nie den Quellcode für die Endbenutzer verteilen. Wenn Ihr Code über proprietäre Informationen oder den geistigen Eigentumswert verfügt, bleibt dieser auf Ihrem eigenen Computer sicher geschützt. Es wird niemals an den Benutzer verteilt. Ihr Code kann niemals kompromittiert werden.

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

+5

Vb6 ist veraltet. Ich würde VSTO stattdessen empfehlen :) –

+0

Was ist mit Kompatibilitätsproblemen? Ich gehe jetzt durch die Dokumentation für VSTO, aber wenn Sie eine schnelle Antwort hätten, wäre das großartig. - Unterstützt VSTO Addins ältere Versionen von Office? - Unterstützt es die MAC-Version von Office/Open Office? – Chronix3

+1

@ Chronix3 Ich schlug Automatisierung Add In In bcoz die Syntax ist ähnlich wie VBA und kann schneller erledigt werden. Versuche es. Obwohl VB6 veraltet ist, funktioniert es immer noch. – Santosh

Verwandte Themen