Если вы не хотите использовать API-функции, вы можете использовать библиотеку объектов Words для чтения и записи строк частного профиля.

Слова System.PrivateProfileString могут читать и записывать как INI-файлы, так и реестр.

В других приложениях, кроме Word, вам нужно добавить ссылку на библиотеку объектов Words.

Вы можете добавить ссылку, открыв редактор Visual Basic (VBE) и активировав свой проект VB. Затем вы выбираете Инструменты, Ссылки …​ и выбираете опцию Библиотека объектов Microsoft Word x.x.

Записать информацию в INI-файлы

С помощью приведенного ниже макроса вы можете сохранить информацию в текстовый файл:

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

Используйте такой макрос, чтобы сохранить значение 100 в файле C: \ FolderName \ FileName.ini в разделе MySectionName для ключа TestValue:

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

Текстовый файл будет выглядеть так:

TestValue = 100

Чтение информации из INI-файлов

С помощью приведенного ниже макроса вы можете читать информацию из текстового файла:

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

Используйте подобный макрос для возврата значения ключа TestValue в разделе MySectionName из файла C: \ FolderName \ FileName.ini:

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

"MySectionName", "TestValue")

===

Запись информации в реестр * С помощью макроса ниже вы можете сохранить информацию в реестре:

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

Используйте такой макрос, чтобы сохранить новое значение в HKEY_CURRENT_USER \ Software \ Microsoft \ Office8.0 \ Excel \ Microsoft Excel для ключа DefaultPath:

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

MyBooleanVar = SetRegistrySetting(MyStringVar, _

"DefaultPath", "C:\FolderName")

Чтение информации из реестра С помощью макроса ниже вы можете читать информацию из реестра:

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

Используйте подобный макрос для чтения значения из ключа DefaultPath

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