Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Basic / VBA


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Vasiliy83
Статус: Практикант
Рейтинг: 1082
∙ повысить рейтинг »
Гаряка Асмик
Статус: Практикант
Рейтинг: 1032
∙ повысить рейтинг »
Megaloman
Статус: Бакалавр
Рейтинг: 876
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Basic/VBA

Номер выпуска:974
Дата выхода:08.01.2010, 12:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:371 / 100
Вопросов / ответов:3 / 3

Вопрос № 175772: Уважаемые эксперты, подскажите, как при помощи ВБА убедиться, что в реестре имеются следующие ключи: HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers\{64AB6C69-B40E-40AF-9B7F-F5687B48E2B5} HKEY_CURRENT_USER \S...


Вопрос № 175774: Здравствуйте уважаемые эксперты! Подскажите пожалуйста, возможно ли в QBasic 4.5 сделать поддержку кириллицы? Liberty Basic как вариа...
Вопрос № 175776: Уважаемые эксперты, подскажите в следующем как узнать количество слов на странице активного документа № , как присвоить, этому значению переменную А= Спасибо Эндрю...

Вопрос № 175772:



Уважаемые эксперты, подскажите, как при помощи ВБА убедиться, что
в реестре имеются следующие ключи:
HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers\{64AB6C69-B40E-40AF-9B7F-F5687B48E2B5}
HKEY_CURRENT_USER \Software\Microsoft\Office\Common\Smart Tag \Actions\{64AB6C69-B40E-40AF-9B7F-F5687B48E2B5}
Также чтобы сделать то что я добиваюсь согласно прочитанной мною информации, как было сказано нужно убедиться, что каждый из указанных двух ключей обладает строковым значением ListDirectory, идентифицирующим каталог, в котором хранятся эти XML-списки. Если можете, поясните, что это и можно ли и как это сделать с помощью ВБА??
Спасибо Эндрю

Отправлен: 02.01.2010, 13:46
Вопрос задал: Ципихович Эндрю, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Megaloman, Бакалавр :
Здравствуйте, Ципихович Эндрю.
То, что Вы указали, имена разделов, а не ключей.
Я понимаю вопрос так: в реестре имеются следующие разделы
HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers\{64AB6C69-B40E-40AF-9B7F-F5687B48E2B5}
HKEY_CURRENT_USER \Software\Microsoft\Office\Common\Smart Tag \Actions\{64AB6C69-B40E-40AF-9B7F-F5687B48E2B5}
в каждом из которых должен быть ключ ListDirectory, который должен соответствовать некоему желаемому Вам значению.
С помощью VBA я не знаю, как это сделать, но с помощью средств Windows Script Host, которые в данном случае совместимы с программами на VBA
Вот решение, которое проверено в макросе Excel.
Код:
' Public WS
Sub uuu()
' Set WS = CreateObject ("WScript.Shell") ' Создаём объект Shell Windows Script Host

Key1 = "HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers\{4FFB3E8B-AE75-48F2-BF13-D0D7E93FA8F9}\ListDirectory"
Key2 = "HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers\{64AB6C69-B40E-40AF-9B7F-F5687B48E2B5}\ListDirectory"
Key22 = "HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag \Actions\{64AB6C69-B40E-40AF-9B7F-F5687B48E2B5}\ListDirectory"
Key3 = "HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers\{64AB6C69-B40E-40AF-9B7F-F5687B48E2B5}\Status"

MsgBox (ContKey(Key1, "D:\Install"))
MsgBox (ContKey(Key2, "D:\Install"))
MsgBox (ContKey(Key22, "D:\Install"))
MsgBox (ContKey(Key3, 4))

End Sub
Function ContKey(iKey, WhatWant)
' iKey - путь ключа в реест ре
' WhatWant - требуемое значение ключа

Set WS = CreateObject("WScript.Shell") ' Создаём объект Shell Windows Script Host

On Error Resume Next
Val_iKey = WS.RegRead(iKey)

If Err.Number <> 0 Then
ContKey = "Указанный ключ" + vbCrLf + vbCrLf + iKey + vbCrLf + vbCrLf + "не найден" 'Err.Description
ElseIf CStr(Val_iKey) = CStr(WhatWant) Then
ContKey = "Указанный ключ" + vbCrLf + vbCrLf + iKey + vbCrLf + vbCrLf + "найден и равен нужному значению"
ContKey = ContKey + vbCrLf + vbCrLf + CStr(WhatWant)
Else
ContKey = "Указанный ключ" + vbCrLf + vbCrLf + iKey + vbCrLf + vbCrLf + "найден, но равен значению"
ContKey = ContKey + vbCrLf + vbCrLf + CStr(Val_iKey)
ContKey = ContKey + vbCrLf + "Что не соответствует требуемому" + vbCrLf + CStr(WhatWant)
End If

On Error GoTo 0

End Function
Функция ContKey выдаёт строку с анализом наличия ключа. Если переменную WS объявить как Public, то её можно определить вне функции (у меня в решении закомментировано)

-----
Нет времени на медленные танцы

Ответ отправил: Megaloman, Бакалавр
Ответ отправлен: 02.01.2010, 19:25

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258322 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 175774:

    Здравствуйте уважаемые эксперты! Подскажите пожалуйста, возможно ли в QBasic 4.5 сделать поддержку кириллицы? Liberty Basic как вариант не предлагать, мне нужно именно в QBasic и если можно это сделать, то как? Спасибо большое, надеюсь на помощь

    Отправлен: 02.01.2010, 17:31
    Вопрос задал: Мироненко Николай Николаевич, Студент
    Всего ответов: 1
    Страница вопроса »


    Отвечает Megaloman, Бакалавр :
    Здравствуйте, Мироненко Николай Николаевич.
    Во первых, в реестре надо изменить 2 ключа. Сохраните приведенный ниже код в текстовый файл с расширением .reg, например yyy.reg и запустите его на выполнение. На запрос о внесении данных в реестр ответьте ДА.

    Код:
    Windows Registry Editor
    Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout\DosKeybCodes]
    "00000409"="ru"
    "00020409"="ru"
    В принципе, эти параметры можно изменить и вручную, запустив на выполнение редактор реестра regedit и войдя в соответствующий раздел.
    Далее, в файле C:\WINDOWS\system32\autoexec.nt добавьте внизу строку (если система установлена на диске C:)
    LH %SystemRoot%\system32\kb16.c om ru

    Мне помогло. У меня Windows XP
    Запустите Basic. (Перезапустите, если был запущен).
    Переключение на русский - Ctrl-Shift справа, английский - - Ctrl-Shift слева



    -----
    Нет времени на медленные танцы

    Ответ отправил: Megaloman, Бакалавр
    Ответ отправлен: 02.01.2010, 20:42

    Оценка ответа: 5

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258324 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 175776:

    Уважаемые эксперты, подскажите в следующем как узнать количество слов на странице активного документа № , как присвоить, этому значению переменную А=

    Спасибо Эндрю

    Отправлен: 02.01.2010, 19:36
    Вопрос задал: Ципихович Эндрю, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает Vasiliy83, Практикант :
    Здравствуйте, Ципихович Эндрю.
    Вот такой код выделит необходимую страницу или диапазон страниц и посчитает количество слов в выделении:
    Код:
    Dim A As Long
    Dim rgePages As Range
    Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=1 'номер первой страницы выделения
    Set rgePages = Selection.Range
    Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=2 'номер второй страницы выделения (если страница одна - совпадает с номером первой страницы выделения)
    rgePages.End = Selection.Bookmarks("\Page").Range.End
    rgePages.Select
    A = Selection.Words.Count

    Ответ отправил: Vasiliy83, Практикант
    Ответ отправлен: 05.01.2010, 10:06

    Оценка ответа: 5

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258364 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.13 от 28.12.2009

    В избранное