Private Profilzeichenfolgen mit Words System.PrivateProfileString mit VBA in Microsoft Excel

Anonim

Wenn Sie keine API-Funktionen verwenden möchten, können Sie die Words-Objektbibliothek verwenden, um private Profilzeichenfolgen zu lesen und zu schreiben.

Words System.PrivateProfileString kann sowohl aus INI-Dateien als auch aus der Registry lesen und schreiben.

In anderen Anwendungen als Word müssen Sie einen Verweis auf die Words-Objektbibliothek hinzufügen.

Sie können die Referenz hinzufügen, indem Sie den Visual Basic-Editor (VBE) öffnen und Ihr VB-Projekt aktivieren. Dann wählen Sie Tools, References… und aktivieren die Option Microsoft Word x.x Object Library.

Informationen in INI-Dateien schreiben

Mit dem folgenden Makro können Sie Informationen in einer Textdatei speichern:

Funktion SetIniSetting(FileName As String, Section As String, _ Key As String, KeyValue) As Boolean Dim wd As Word.Application SetIniSetting = False Set wd = New Word.Application ' das Word-Anwendungsobjekt erstellen Bei Fehler Resume Next wd.System. PrivateProfileString(FileName, Section, Key) = CStr(KeyValue) Bei Fehler GoTo 0 Set wd = Nothing 'das Word-Anwendungsobjekt zerstören SetIniSetting = True End Function

Verwenden Sie das Makro wie folgt, um den Wert 100 in der Datei C:\FolderName\FileName.ini im Abschnitt . zu speichern
MySectionName für den Schlüssel TestValue:
MyBooleanVar = SetIniSetting("C:\Ordnername\Dateiname.ini", "MySectionName", "TestValue", 100)
Die Textdatei sieht so aus:
[MySectionName]
Testwert=100

Informationen aus INI-Dateien lesen
Mit dem folgenden Makro können Sie Informationen aus einer Textdatei lesen:

Funktion GetIniSetting(FileName As String, Section As String, _ Key As String) As String Dim wd As Word.Application GetIniSetting = "" Set wd = New Word.Application ' das Word-Anwendungsobjekt erstellen Bei Fehler Fortsetzen Weiter GetIniSetting = wd.System .PrivateProfileString(FileName, Section, Key) On Error GoTo 0 Set wd = Nothing ' Zerstöre das Word-Anwendungsobjekt End Function

Verwenden Sie das Makro wie folgt, um den Wert für den Schlüssel TestValue im Abschnitt MySectionName . zurückzugeben
aus der Datei C:\Ordnername\Dateiname.ini:

MyStringVar = GetIniSetting("C:\Ordnername\Dateiname.ini", _ "MySectionName", "TestValue")


Schreiben Sie Informationen in die Registry

Mit dem folgenden Makro können Sie Informationen in der Registry speichern:

Funktion SetRegistrySetting(Section As String, _ Key As String, KeyValue) As Boolean Dim wd As Word.Application SetRegistrySetting = False Set wd = New Word.Application ' das Word-Anwendungsobjekt erstellen Bei Fehler Resume Next wd.System.PrivateProfileString("" , Section, Key) = CStr(KeyValue) On Error GoTo 0 Set wd = Nothing ' das Word-Anwendungsobjekt zerstören SetRegistrySetting = True End Function

Verwenden Sie das Makro wie folgt, um einen neuen Wert in HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Excel\Microsoft zu speichern
Excel für den Schlüssel DefaultPath:

MyStringVar = "HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Excel\Microsoft Excel" MyBooleanVar = SetRegistrySetting(MyStringVar, _ "DefaultPath", "C:\FolderName")

Informationen aus der Registry auslesen Mit dem folgenden Makro können Sie Informationen aus der Registry auslesen:

Funktion GetRegistrySetting(Section As String, Key As String) As String Dim wd As Word.Application GetRegistrySetting = "" Set wd = New Word.Application ' das Word-Anwendungsobjekt erstellen Bei Fehler Fortsetzen Weiter GetRegistrySetting = wd.System.PrivateProfileString("" , Abschnitt, Taste) Bei Fehler GoTo 0 Setze wd = Nothing ' Zerstöre das Word-Anwendungsobjekt End Function

Verwenden Sie das Makro wie folgt, um den Wert aus dem Schlüssel DefaultPath zu lesen
aus HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Excel\Microsoft Excel:

MyStringVar = "HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Excel\Microsoft Excel" MyStringVar = SetRegistrySetting(MyStringVar, _ "DefaultPath")