Se non vuoi usare le funzioni API puoi usare la libreria di oggetti Words per leggere e scrivere stringhe di profilo privato.

Le parole System.PrivateProfileString possono leggere e scrivere sia nei file INI che nel registro.

In altre applicazioni oltre a Word è necessario aggiungere un riferimento alla libreria di oggetti Words.

È possibile aggiungere il riferimento aprendo Visual Basic Editor (VBE) e attivare il progetto VB. Quindi seleziona Strumenti, Riferimenti …​ e controlla l’opzione Libreria oggetti di Microsoft Word x.x.

Scrive le informazioni sui file INI

Con la macro sottostante puoi salvare le informazioni in un file di testo:

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

Usa la macro in questo modo per salvare il valore 100 nel file C: \ FolderName \ FileName.ini nella sezione MySectionName per la chiave TestValue:

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

Il file di testo avrà questo aspetto:

TestValue = 100

Leggi le informazioni dai file INI

Con la macro qui sotto puoi leggere le informazioni da un file di testo:

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

Usa la macro in questo modo per restituire il valore per la chiave TestValue nella sezione MySectionName dal file C: \ FolderName \ FileName.ini:

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

"MySectionName", "TestValue")

===

Scrivi informazioni nel Registro * Con la macro sottostante puoi salvare le informazioni nel Registro:

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

Usa la macro in questo modo per salvare un nuovo valore in HKEY_CURRENT_USER \ Software \ Microsoft \ Office8.0 \ Excel \ Microsoft Excel per la chiave DefaultPath:

MyStringVar = "HKEY_CURRENT_USER\Software\Microsoft\Office.0\Excel\Microsoft Excel"

MyBooleanVar = SetRegistrySetting(MyStringVar, _

"DefaultPath", "C:\FolderName")

Leggere le informazioni dal Registro Con la macro sottostante puoi leggere le informazioni dal Registro:

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

Usa la macro come questa per leggere il valore dalla chiave DefaultPath

da 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")