Cordes Profil privé à l’aide de mots System.PrivateProfileString en utilisant VBA dans Microsoft Excel
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")