Частные Струны профиля с использованием слова System.PrivateProfileString с помощью VBA в Microsoft Excel
Если вы не хотите использовать 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")