Si vous ne souhaitez pas utiliser les fonctions API, vous pouvez utiliser la bibliothèque d’objets Words pour lire et écrire des chaînes de profil privé.

Words System.PrivateProfileString peut lire et écrire à la fois dans les fichiers INI et dans le registre.

Dans d’autres applications que Word, vous devez ajouter une référence à la bibliothèque d’objets Words.

Vous pouvez ajouter la référence en ouvrant Visual Basic Editor (VBE) et activer votre projet VB. Ensuite, vous sélectionnez Outils, Références …​ et cochez l’option Bibliothèque d’objets Microsoft Word x.x.

Ecrire des informations dans des fichiers INI

Avec la macro ci-dessous, vous pouvez enregistrer des informations dans un fichier texte:

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

Utilisez la macro comme celle-ci pour enregistrer la valeur 100 dans le fichier C: \ FolderName \ FileName.ini dans la section MySectionName pour la clé TestValue:

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

Le fichier texte ressemblera à ceci:

TestValue = 100

Lire les informations des fichiers INI

Avec la macro ci-dessous, vous pouvez lire les informations d’un fichier texte:

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

Utilisez la macro comme celle-ci pour renvoyer la valeur de la clé TestValue dans la section MySectionName du fichier C: \ FolderName \ FileName.ini:

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

"MySectionName", "TestValue")

===

Écrire des informations dans le registre * Avec la macro ci-dessous, vous pouvez enregistrer des informations dans le registre:

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

Utilisez la macro comme celle-ci pour enregistrer une nouvelle valeur dans HKEY_CURRENT_USER \ Software \ Microsoft \ Office8.0 \ Excel \ Microsoft Excel pour la clé DefaultPath:

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

MyBooleanVar = SetRegistrySetting(MyStringVar, _

"DefaultPath", "C:\FolderName")

Lire les informations du registre La macro ci-dessous vous permet de lire les informations du registre:

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

Utilisez la macro comme celle-ci pour lire la valeur de la clé DefaultPath

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