Privata profilsträngar med Words System.PrivateProfileString med VBA i Microsoft Excel

Anonim

Om du inte vill använda API-funktioner kan du använda Words objektbibliotek för att läsa och skriva privata profilsträngar.

Words System.PrivateProfileString kan läsa från och skriva till både INI-filer och registret.

I andra applikationer än Word måste du lägga till en referens till Words objektbibliotek.

Du kan lägga till referensen genom att öppna Visual Basic Editor (VBE) och aktivera ditt VB -projekt. Sedan väljer du Verktyg, referenser … och markerar alternativet Microsoft Word x.x Object Library.

Skriv information till INI-filer

Med makrot nedan kan du spara information i en textfil:

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 'förstör Word -programobjektet SetIniSetting = True End -funktion

Använd makrot så här för att spara värdet 100 i filen C: \ FolderName \ FileName.ini i avsnittet
MySectionName för nyckeln TestValue:
MyBooleanVar = SetIniSetting ("C: \ FolderName \ FileName.ini", "MySectionName", "TestValue", 100)
Textfilen kommer att se ut så här:
[MySectionName]
Testvärde = 100

Läs information från INI-filer
Med makrot nedan kan du läsa information från en textfil:

Funktion GetIniSetting (Filnamn som sträng, sektion som sträng, _ nyckel som sträng) Som sträng Dim wd Som Word.Application GetIniSetting = "" Ange wd = nytt Word.Application 'skapa Word -applikationsobjektet Vid fel Återuppta nästa GetIniSetting = wd.System .PrivateProfileString (filnamn, avsnitt, nyckel) vid fel GoTo 0 Set wd = ingenting 'förstör Word -programobjektet Slutfunktion

Använd makrot så här för att returnera värdet för nyckeln TestValue i avsnittet MySectionName
från filen C: \ FolderName \ FileName.ini:

MyStringVar = GetIniSetting ("C: \ FolderName \ FileName.ini", _ "MySectionName", "TestValue")


Skriv information till registret

Med makrot nedan kan du spara information i registret:

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 ("" , Sektion, nyckel) = CStr (KeyValue) Vid fel GoTo 0 Set wd = Nothing 'förstör Word -programobjektet SetRegistrySetting = True End -funktion

Använd makrot så här för att spara ett nytt värde i HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 8.0 \ Excel \ Microsoft
Excel för nyckeln DefaultPath:

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

Läs information från registret Med makrot nedan kan du läsa information från registret:

Funktion GetRegistrySetting (avsnitt som sträng, nyckel som sträng) As sträng Dim wd As Word.Application GetRegistrySetting = "" Set wd = New Word.Application 'create the Word application object On Error Resume Next GetRegistrySetting = wd.System.PrivateProfileString ("" , Sektion, nyckel) Vid fel GoTo 0 Set wd = Nothing 'förstör Word -programobjektets slutfunktion

Använd makrot så här för att läsa värdet från nyckeln DefaultPath
från 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")