Privates Profil Strings mit Worten mit VBA in Microsoft Excel System.PrivateProfileString
Wenn Sie keine API-Funktionen verwenden möchten, können Sie die Words-Objektbibliothek zum Lesen und Schreiben von privaten Profilzeichenfolgen verwenden.
Wörter System.PrivateProfileString kann sowohl aus INI-Dateien als auch aus der Registrierung lesen und in diese 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. Anschließend wählen Sie Extras, Verweise … aus und aktivieren die Option Microsoft Word x.x-Objektbibliothek.
Informationen in INI-Dateien schreiben
Mit dem folgenden Makro können Sie Informationen in einer Textdatei speichern:
Function 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 ' create the Word application object On Error Resume Next wd.System.PrivateProfileString(FileName, Section, Key) = CStr(KeyValue) On Error GoTo 0 Set wd = Nothing ' destroy the Word application object SetIniSetting = True End Function
Verwenden Sie das folgende Makro, um den Wert 100 in der Datei C: \ FolderName \ FileName.ini im Abschnitt MySectionName für den Schlüssel TestValue:
zu speichern MyBooleanVar = SetIniSetting („C: \ Ordnername \ Dateiname.ini“, „MySectionName“, „TestValue“, 100)
Die Textdatei sieht folgendermaßen aus:
TestValue = 100
Informationen aus INI-Dateien lesen
Mit dem folgenden Makro können Sie Informationen aus einer Textdatei lesen:
Function GetIniSetting(FileName As String, Section As String, _ Key As String) As String Dim wd As Word.Application GetIniSetting = "" Set wd = New Word.Application ' create the Word application object On Error Resume Next GetIniSetting = wd.System.PrivateProfileString(FileName, Section, Key) On Error GoTo 0 Set wd = Nothing ' destroy the Word application object End Function
Verwenden Sie das folgende Makro, um den Wert für den Schlüssel TestValue im Abschnitt MySectionName aus der Datei C: \ FolderName \ FileName.ini:
zurückzugeben
MyStringVar = GetIniSetting("C:\FolderName\FileName.ini", _ "MySectionName", "TestValue")
===
Informationen in die Registrierung schreiben * Mit dem folgenden Makro können Sie Informationen in der Registrierung speichern:
Function SetRegistrySetting(Section As String, _ Key As String, KeyValue) As Boolean Dim wd As Word.Application SetRegistrySetting = False Set wd = New Word.Application ' create the Word application object On Error Resume Next wd.System.PrivateProfileString("", Section, Key) = CStr(KeyValue) On Error GoTo 0 Set wd = Nothing ' destroy the Word application object SetRegistrySetting = True End Function
Verwenden Sie das folgende Makro, um einen neuen Wert in HKEY_CURRENT_USER \ Software \ Microsoft \ Office8.0 \ Excel \ Microsoft Excel für den Schlüssel DefaultPath zu speichern:
MyStringVar = "HKEY_CURRENT_USER\Software\Microsoft\Office.0\Excel\Microsoft Excel" MyBooleanVar = SetRegistrySetting(MyStringVar, _ "DefaultPath", "C:\FolderName")
Informationen aus der Registrierung lesen Mit dem folgenden Makro können Sie Informationen aus der Registrierung lesen:
Function GetRegistrySetting(Section As String, Key As String) As String Dim wd As Word.Application GetRegistrySetting = "" Set wd = New Word.Application ' create the Word application object On Error Resume Next GetRegistrySetting = wd.System.PrivateProfileString("", Section, Key) On Error GoTo 0 Set wd = Nothing ' destroy the Word application object End Function
Verwenden Sie das Makro wie folgt, um den Wert aus dem Schlüssel DefaultPath
zu lesen von HKEY_CURRENT_USER \ Software \ Microsoft \ Office8.0 \ Excel \ Microsoft Excel:
MyStringVar = "HKEY_CURRENT_USER\Software\Microsoft\Office.0\Excel\Microsoft Excel" MyStringVar = SetRegistrySetting(MyStringVar, _ "DefaultPath")