Perfil privado cadenas utilizando palabras System.PrivateProfileString utilizando VBA en Microsoft Excel
Si no desea utilizar funciones API, puede utilizar la biblioteca de objetos Words para leer y escribir cadenas de perfiles privados.
Las palabras System.PrivateProfileString pueden leer y escribir tanto en archivos INI como en el Registro.
En otras aplicaciones que no sean Word, debe agregar una referencia a la biblioteca de objetos de Words.
Puede agregar la referencia abriendo el Editor de Visual Basic (VBE) y activando su Proyecto VB. Luego seleccionas Herramientas, Referencias … y marcas la opción Biblioteca de Objetos de Microsoft Word x.x.
Escribir información en archivos INI
Con la macro siguiente, puede guardar información en un archivo de texto:
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
Use la macro como esta para guardar el valor 100 en el archivo C: \ FolderName \ FileName.ini en la sección MySectionName para la clave TestValue:
MyBooleanVar = SetIniSetting («C: \ FolderName \ FileName.ini», «MySectionName», «TestValue», 100)
El archivo de texto se verá así:
TestValue = 100
Leer información de archivos INI
Con la macro a continuación, puede leer información de un archivo de texto:
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
Utilice la macro como esta para devolver el valor de la clave TestValue en la sección MySectionName del archivo C: \ FolderName \ FileName.ini:
MyStringVar = GetIniSetting("C:\FolderName\FileName.ini", _ "MySectionName", "TestValue")
===
Escriba información en el Registro * Con la macro siguiente puede guardar información en el 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
Use la macro como esta para guardar un nuevo valor en HKEY_CURRENT_USER \ Software \ Microsoft \ Office8.0 \ Excel \ Microsoft Excel para la clave DefaultPath:
MyStringVar = "HKEY_CURRENT_USER\Software\Microsoft\Office.0\Excel\Microsoft Excel" MyBooleanVar = SetRegistrySetting(MyStringVar, _ "DefaultPath", "C:\FolderName")
Leer información del Registro Con la siguiente macro, puede leer información del 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
Use la macro como esta para leer el valor de la clave DefaultPath
desde 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")