VBA: Registry-Werte schreiben und lesen

Mit VBA auf die Registry zugreifen - so geht's

In die Registry schreiben

Die Registry ist der optimale Ort, um Optionen für Ihren VBA-Code zwischenzuspeichern und später wieder darauf zuzugreifen. Lorenz Hölscher zeigt Ihnen verschiedene VBA-Befehle für den direkten Zugriff auf bestimmte Registry-Inhalte.

In die Registry schreiben

Mit SaveSetting können Sie von Word-VBA aus Zeichenketten im Registry-Zweig HKEY_CURRENT_USER\Software\VB and VBA Program Settings\ speichern.

Der SaveSetting-Befehl zum Schreiben ist in Word-VBA bereits vorhanden, lässt sich aber noch bequemer in einer eigenen Prozedur kapseln. Erstellen Sie in einem normalen Modul eine neue Prozedur RegWertSchreiben mit dem folgenden Code:

Const m_cstrAppName = "MeinProgramm"
Const m_cstrSektion = "Optionen"

Sub RegWertSchreiben(strWertname As String, strInhalt As String)
	SaveSetting m_cstrAppName, m_cstrSektion, strWertname, strInhalt
End Sub

Eine Pfad- oder Datei-Angabe für das Schreiben in die Registry ist nicht nötig, da diese Windows-intern bekannt ist. Daher müssen Sie nur den darin angesprochenen Schlüssel angeben, der aus den drei Verzweigungen AppName, Section und Key besteht.

Die Modul-öffentliche Konstante m_cstrAppName dient nur der einheitlichen Schreibweise des Programm-Namens, wobei dieser frei wählbar ist und keineswegs ein Programm-Name sein muss. Auch die Section in der Konstanten m_cstrSektion kann inhaltlich beliebig benannt werden. Sie werden bei vielen Werten aber froh sein, diese in solchen Gruppen zusammenfassen zu können.

Die letzten beiden Parameter stehen für den Namen des Schlüssels und seinen Wert. Obwohl die Registry eigentlich verschiedene Datentypen kennt, lassen sich mit SaveSetting (und später GetSetting zum Auslesen) nur String-Datentypen speichern und lesen.

Als Mitglied können Sie diesen Beitrag weiterlesen!

Werden Sie Mitglied und testen Sie akademie.de 14 Tage lang kostenlos!

In den ersten 14 Tagen haben Sie Zugriff auf alle Inhalte auf akademie.de, außer Downloads. Sie können in dieser Zeit ohne Angabe von Gründen stornieren. Eine E-Mail an service@akademie.de genügt. Nur wenn Sie Mitglied bleiben, wird der Mitgliedsbeitrag nach Ende der 14tägigen Stornofrist abgebucht.

Ich bin bereits Mitglied
Jetzt Mitglied werden und akademie.de 14 Tage kostenlos testen
Ich entscheide mich für folgende Zahlungsweise:
14 Tage Stornorecht:
Ich kann meine Mitgliedschaft in den ersten 14 Tagen jederzeit formlos stornieren, z.B. per E-Mail an service@akademie.de.

Benutzer- und PC-Abhängigkeit?

Wie sind diese Registry-Einträge unter HKEY CURRENT USER zu verstehen? Ich gehe davon aus, dass diese benutzer- und PC-abhängig sind? Wenn ich hier hinein beispielsweise eine fortlaufende Rechnungsnummer schreibe, kann diese wohl nur von diesem PC und von diesem Benutzer ausgelesen werden?

HKey_Current_User

Hallo Gast,

ja, HKEY_CURRENT_USER enthält persönliche Daten für diesen User. Beachten Sie bitte außerdem, dass diese VBA-Befehle darin auch exakt nur unterhalb von
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\
schreiben.

Wollen Sie "irgendwo" in der Registry lesen oder schreiben, brauchen Sie Windows-APIs. Suchen Sie dazu beispielsweise nach "RegOpenKeyA" oder "RegCreateKeyA" und dann nach Beispielen, wie diese in VBA eingebunden und aufgerufen werden. Das ist aber deutlich mehr Aufwand.

Viel Erfolg, L. Hölscher

Inhalt

Downloads zu diesem Beitrag

Newsletter abonnieren