2016-07-28 38 views
0

Ich wurde gebeten, ein Excel-Add-In für Benutzer zu erstellen, um eine Reihe von XML-Dokumenten in Excel-Tabellen aus Excel zu laden. Ich werde ein Add-In schreiben und seinen Standort veröffentlichen, damit Benutzer ihre eigenen lokalen Kopien zur Verwendung herunterladen können. Ich möchte im Idealfall einige Konstanten für die VBA konfigurieren, die von jedem Endbenutzer konfiguriert werden können, um ihre Erfahrung und Funktion anzupassen.Excel-Add-In Variablen konfigurieren und speichern

Ich dachte, es wäre schön, eine Schaltfläche zum Ausführen des Add-in und eine andere Schaltfläche namens "Konfigurieren" oder etwas, die die Werte einiger der Variablen in der VBA bearbeiten würde, und speichern Sie die neuen Werte so Wenn der Benutzer das nächste Mal Excel öffnet, bleibt das Add-In für sie konfiguriert. Ist so etwas möglich und hast du Vorschläge, welchen Weg ich einschlagen soll?

Gibt es eine Möglichkeit, die Variablen zu erhalten? Ich denke, ich müsste die Werte irgendwo auf der lokalen Version des Add-Ins speichern, aber wenn ja, wie kann ich einen Parametersatz am besten speichern?

Jeder allgemeine Rat wäre sehr willkommen; Ich habe das Add-In noch nicht geschrieben und bin noch in der Entwurfsphase.

+1

Add-Ins werden als Excel-Arbeitsmappen erstellt, sodass sie über eigene Arbeitsblätter verfügen, auf die sie verweisen kann. Stellen Sie sicher, dass Sie, wenn Sie sie im Add-In-Code referenzieren, 'ThisWorkbook' für die Blätter des Add-Ins verwenden und dass Sie' ActiveWorkbook' für die Excel-Blätter des Endbenutzers verwenden. Speichern Sie Ihre Variablenwerte dann einfach in Zellen, und Sie können diese Zellenwerte in den Add-In-Arbeitsblättern ändern, um sie persistent zu machen. – tigeravatar

+0

Das klingt nach einer perfekten Lösung - ich wusste nicht, dass sie auf diese Weise zugängliche Blätter hatten; all das, was ich gelesen habe, lautete: "Stellen Sie sicher, ActiveWorkbook zu benutzen". Ich werde tun, was Sie vorschlagen. Wenn Sie dies als Antwort veröffentlichen, werde ich es als solches markieren. –

+1

Sie können die Registrierung verwenden (Windows vorausgesetzt) ​​oder eine separate Textdatei ("ini" oder XML) Wenn Sie die Arbeitsblätter des Add-Ins verwenden, um Daten zu speichern, dann müssen Sie überlegen, wie Sie Updates verwalten: Sie können nicht Veröffentlichen Sie einfach eine neue Version, ohne dass Ihre Benutzer ihre Einstellungen neu konfigurieren müssen. –

Antwort

2

Ich rate nicht, Zellen zu verwenden, um Einstellungen zu speichern, da der Benutzer es F auflecken kann.

Allerdings unterstützt VBA Registry-Änderungen.

SaveSetting "Macro name", "Settings", "Username", "John Doe" 

Der obige Code wird eine Einstellung oder einen Registrierungsschlüssel Username mit dem Namen John Doe im appname genannt Macro name und der Abschnitt Settings genannt speichern.

Kurz gesagt, Sie müssen nur die letzten zwei Strings ändern, wenn Sie neue Einstellungen speichern. Die ersten beiden sollten (um es Dir leicht zu machen) immer gleich sein. \

Um die Einstellung, die Sie verwenden HCU \ Software \ VB und VBA Program Settings \ Ihre App-Name:

GetSetting("Macro name", "Settings", "Username") 

Eine andere Lösung zu verwenden ist txt-

Die Schlüssel werden in gespeichert werden Datei.
Es ist immer noch besser als Zellen, aber nicht so gut wie oben erwähnt Registrierung.

settings = "Username=John Doe, Worktitle=Janitor" 
MyFile = "C:\myapp\settings.txt" 
fnum = FreeFile() 
Open MyFile For Output As #fnum 
Print #fnum, settings 
Close #fnum 

Jetzt haben Sie eine TXT-Datei mit den Einstellungen, die Sie lesen und analysieren können.

+0

Ich weiß, dass die Leute um mich herum sehr vorsichtig sein werden, wenn sie in die Registry schreiben, und deshalb nehme ich den Vorschlag, eine Textdatei zum Speichern von Parametern zu verwenden; Dies scheint ein guter Kompromiss der perfekten Lösung zu sein und die Menschen durch eine einfache und risikoarme Strategie glücklich zu machen. Wenn jemand daran interessiert ist, aus einer Textdatei zu lesen, gibt es viele Stellen im Internet, einschließlich http://www.excel-easy.com/vba/examples/read-data-from-text-file.html –

+0

Wenn Leute Angst haben, dass du Sachen in die Registry schreibst, dann sag ihnen, dass sie sich um ihre eigenen Angelegenheiten kümmern sollen. Sie sind offensichtlich Menschen, die etwas denken, aber sie nicht. ** Die VBA-Registrierungsfunktion kann nur in einen bestimmten Ordner in der Registrierung schreiben **. Es hat keinen unbegrenzten Zugang. Ich glaube, dass ungefähr 90-95% aller Software, die Sie auf Ihrem Computer installiert haben, in die Registrierung schreibt. Also, es sei denn du bist eine sehr untreue Person, ich sehe nicht, warum deine Freunde Angst haben würden. Die txt Art, es zu tun, ist, wie ich schrieb OK, aber Sie haben immer noch das Risiko von jemand "etwas testen wollen" – Andreas

+0

In der Registrierung, nur ein paar Leute wissen, wie man zum richtigen Pfad navigieren und sehr sehr wenige sind bereit zu manipuliere die Daten dort. Also, was du da reinstellst bleibt. – Andreas