ERLANDSEN DATA CONSULTING Excel & VBA Tips   Information in English / Informasjon på engelsk

Disse websidene oppdateres ikke lengre og er kun tilgjengelig for historikken sin skyld.

Klikk her for å gå til den oppdaterte informasjonen.

Private Profile Strings med Words System.PrivateProfileString

Dersom du ikke ønsker å benytte API-funksjoner kan du eventuelt benytte Words objektbibliotek til å lese og skrive Private Profile Strings. Words System.PrivateProfileString kan lese fra og skrive til både INI-filer og Registeret på en enkel måte. I andre programmer enn Word må man legge til en referanse til Words objektbibliotek i det aktuelle VB Prosjektet. Referansen legges til ved å åpne Visual Basic Redigering (VBE) og aktivere VB Prosjektet. Deretter velger du Verktøy, Referanser... og krysser av for alternativet Microsoft Word x.x Object Library. 

NB! Det anbefales ikke å tukle med Registeret dersom man ikke vet hva man gjør, i verste fall kan man risikere at man må installerere maskinens operativsystem og annen programvare på nytt.

Skrive informasjon til INI-filer
Ved hjelp av makroen nedenfor kan man enkelt lagre informasjon i en tekstfil:

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 ' opprett Word application objektet
    On Error Resume Next
    wd.System.PrivateProfileString(FileName, Section, Key) = CStr(KeyValue)
    On Error GoTo 0
    wd.Quit
    Set wd = Nothing ' fjern Word application objektet
    SetIniSetting = True
End Function

Makroen kan benyttes slik for å lagre verdien 100 i filen C:\FolderName\FileName.ini i seksjonen MySectionName (uten hakeparenteser) for nøkkelen TestValue:

MyBooleanVar = SetIniSetting("C:\FolderName\FileName.ini", _
    "MySectionName", "TestValue", 100)

Innholdet i tekstfilen C:\FolderName\FileName.ini vil se slik ut:

[MySectionName]
TestValue=100

Lese informasjon fra INI-filer
Ved hjelp av makroen nedenfor kan man enkelt lese informasjon fra en tekstfil:

Function GetIniSetting(FileName As String, Section As String, Key As String) As String
Dim wd As Word.Application
    GetIniSetting = ""
    Set wd = New Word.Application ' opprett Word application objektet
    On Error Resume Next
    GetIniSetting = wd.System.PrivateProfileString(FileName, Section, Key)
    On Error GoTo 0
    wd.Quit
    Set wd = Nothing ' fjern Word application objektet
End Function

Makroen kan benyttes slik for å returnere verdien for nøkkelen TestValue i seksjonen MySectionName (uten hakeparenteser) fra filen C:\FolderName\FileName.ini:

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

Skrive informasjon til Registeret
Ved hjelp av makroen nedenfor kan man enkelt lagre informasjon i Registeret:

Function SetRegistrySetting(Section As String, _
    Key As String, KeyValue) As Boolean
Dim wd As Word.Application
    SetRegistrySetting = False
    Set wd = New Word.Application ' opprett Word application objektet
    On Error Resume Next
    wd.System.PrivateProfileString("", Section, Key) = CStr(KeyValue)
    On Error GoTo 0
    wd.Quit
    Set wd = Nothing ' fjern Word application objektet
    SetRegistrySetting = True
End Function

Makroen kan benyttes slik for å lagre en ny verdi i HKEY_CURRENT_USERSoftwareMicrosoftOffice8.0ExcelMicrosoft Excel for nøkkelen DefaultPath:

MyStringVar = _
    "HKEY_CURRENT_USERSoftwareMicrosoftOffice8.0ExcelMicrosoft Excel"
MyBooleanVar = SetRegistrySetting(MyStringVar, "DefaultPath", "C:\FolderName")

Lese informasjon fra Registeret
Ved hjelp av makroen nedenfor kan man enkelt lese informasjon fra Registeret:

Function GetRegistrySetting(Section As String, Key As String) As String
Dim wd As Word.Application
    GetRegistrySetting = ""
    Set wd = New Word.Application ' opprett Word application objektet
    On Error Resume Next
    GetRegistrySetting = wd.System.PrivateProfileString("", Section, Key)
    On Error GoTo 0
    wd.Quit
    Set wd = Nothing ' fjern Word application objektet
End Function

Makroen kan benyttes slik for å hente en verdi for nøkkelen DefaultPath fra HKEY_CURRENT_USERSoftwareMicrosoftOffice8.0ExcelMicrosoft Excel:

MyStringVar = _
    "HKEY_CURRENT_USERSoftwareMicrosoftOffice8.0ExcelMicrosoft Excel"
MyStringVar = SetRegistrySetting(MyStringVar, "DefaultPath")

 

Dokumentet er sist oppdatert 2000-04-07 12:36:02      Utskriftsvennlig versjon

 

Erlandsen Data Consulting     http://www.erlandsendata.no/   
Excel & VBA Tips   Copyright ©1999-2017    Ole P. Erlandsen   All rights reserved
E-post kontaktadresse