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