Автор Тема: VBA. Подключение пространства имён Microsoft.Win32  (Прочитано 1232 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Somes

  • Коллежский регистратор
  • *
  • Сообщений: 2
  • Репутация: 0
Добрые сутки, уважаемые.
Собственно задача считать строку из реестра.
Описанный в FAQ уважаемым Granata005 метод показался мне несколько сложным. "Как есть" в VBA он не работает, а править синтаксис я не в силах в связи с отсутствием мозга.
MSDN глаголит о классе RegistryKey из упомянутого в сабже пространства имён.
Но как подключить его в VBA? В разделе Reference редактора однозначно соответствующего пространства имён нет. Для VB люди рекмендуют дословно следующее: "You don't actually add a reference. At the top of your code page type "Imports Microsoft.Win32"."
При такой методе VBA ругается на синтаксис. Как же мне использовать этот класс?
Извините за излишние "многобуквы". Заранее благодарен за ответ.


Оффлайн strvl

  • Коллежский регистратор
  • *
  • Сообщений: 16
  • Репутация: 0
Re: VBA. Подключение пространства имён Microsoft.Win32
« Ответ #1 : ёоЭм 10, 2009, 09:54:35 am »
Насколько я понял, задача - считать/записать значение в реестр. Самый оптимальный способ показан в FAQ глубокоуважаемым Granata005, но существует другой, очень простой метод (требует наличия библиотеки Windows Script Host Object Model – wshom.ocx):
Dim b As Object
Set b = CreateObject("wscript.shell")
b.RegWrite "HKCU\TEST\Value", "HELLO WORLD"
Msgbox b.RegRead("HKCU\TEST\Value")
b.RegDelete "HKCU\TEST\Value"
Третья строка - запись ключа в реестр, четвертая - чтение, пятая - удаление.
В коде HKCU – указывает на ветку HKEY_CURRENT_USER, вместо этого можно также указывать HKLM (ветка HKEY_LOCAL_MACHINE) и HKCR (ветка HKEY_CLASSES_ROOT).