Есть ли способ получить доступ к файлам справки VBA из командной строки

StackOverflow https://stackoverflow.com/questions/892010

  •  23-08-2019
  •  | 
  •  

Вопрос

Мне нужно будет написать несколько модулей vba для проекта, над которым я работаю, и я предпочел бы использовать SciTE вместо встроенного редактора в Office.

SciTE позволяет перенаправить эффект нажатия клавиши F1 на произвольную команду с выделенным текстом в качестве аргумента.Есть ли какой-либо способ использовать эту функциональность для поиска соответствующих файлов .chm?

Я предполагаю, что нет, учитывая, что справка для vba распределена по нескольким файлам, но я надеюсь, что кто-нибудь сможет доказать, что я ошибаюсь...

Мне особенно интересно, может ли кто-нибудь предложить способ узнать, в каком chm-файле находится справка конкретной библиотеки, просто по имени функции с полными разделителями.

Это было полезно?

Решение

Основные файлы хранятся (во всяком случае, для Office 2003) в Program Files\OFFICE11\1033, но доступ к страницам внутри них может быть немного затруднен, поскольку Microsoft постепенно пришлось отказаться от возможности копаться в файлах CHM на протяжении многих лет из-за соображений безопасности.Эта страница (Скачать) содержит некоторую полезную информацию о том, что все еще может быть возможно в том, что касается ссылок на определенные страницы внутри CHM

Сказав это, я не думаю, что этот файл является справкой по умолчанию, показываемой большинству пользователей в настоящее время, но он достаточно близок к этому, большую часть времени отсутствует только настройка Office 2007.Похоже, что интерактивная справка установлена по умолчанию, если вы специально не отключите ее во время установки Office.URL-адреса, я думаю, не очень удобны для SEO, поэтому их невозможно угадать.Я полагаю, вы могли бы позаимствовать хитрый трюк у мошенников и создать URL-адреса, которые указывают на верхнюю ссылку в Google, таким образом: Диапазон.

Редактировать: Ссылка на кэш Google?

Другие советы

Другой подход заключается в использовании программы командной строки справки HTML HH.EXE либо для отображения определенных страниц, либо для декомпиляции определенного CHM в HTML-файлы.

Перейдите в папку, указанную Lunatik в командном окне, и введите эту команду:

hh -decompile html vbaac10.chm
                      ^^
# ac is for Access; use xl for Excel, wd for Word, etc

Это создаст папку "html" под ней и заполнит ее большинством файлов, которые пошли на создание файла CHM.Результирующие HTML-файлы можно открыть непосредственно в вашем браузере, хотя они не найдут связанных с ними таблиц стилей или скриптов, адреса которых указаны в их расположении в файлах CHM.Однако таблицы стилей и скрипты извлекаются, так что вы тоже можете с ними работать.

Также взгляните на XML-файлы в папке 1033, например VB_ACTOC.XML - это оглавление справки Access VBA.Он содержит тематические узлы с метками и URL-адресами для каждого элемента в файле справки:

<topic>
  <label>CheckBox Object</label>
  <url>mk:@MSITStore:vbaac10.chm::/html/acobjCheckBox.htm</url>
</topic>

мк: и т.д...URL-адрес можно ввести в командную строку HH, чтобы открыть этот раздел в обычном окне справки HTML.Кроме того, он показывает исходное имя файла CHM и относительный путь к файлу при декомпиляции.

hh mk:@MSITStore:vbaac10.chm::/html/acobjCheckBox.htm

Работая с этими файлами, вы могли бы создать скрипт для поиска / grep файлов по ключевому слову и отображения их в браузере, или вы могли бы преобразовать файлы в какую-нибудь базу данных или другие возможности поиска для работы со справочной системой SciTE на основе команд.

Некоторые сайты с дополнительной информацией об использовании HH.EXE:

  • Командная строка HTMLHelp

    советы по использованию командной строки HH и ссылки на другие сайты

  • КЛЮЧHH 1.1

    альтернативная / дополняющая программа к HH.EXE для работы с файлами CHM

Сильно вдохновленный ответом Лунатика, добавляющий:

command.help.$(file.patterns.vb)=http://www.google.co.uk/search?hl=en&newwindow=1&q=site%3Amsdn.microsoft.com+%222003+VBA%22+$(CurrentWord)
command.help.subsystem.$(file.patterns.vb)=2

к моему файлу vb.properties дает мне разумный способ обхода (загружает страницу результатов поиска Google с критериями поиска:

site:msdn.microsoft.com "2003 VBA" $(CurrentWord)

Очевидно, нет гарантий, что это приведет меня на полезную страницу, но тогда встроенная справка в редакторе VBA также не так надежна в этом вопросе...

Может ли кто-нибудь, кто лучше знает SciTE, предложить более элегантное решение?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top