Есть ли способ получить доступ к файлам справки VBA из командной строки - PullRequest
0 голосов
/ 21 мая 2009

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 08 июля 2009

Другой подход заключается в использовании программы HH.EXE командной строки HTML Help для отображения определенных страниц или для декомпиляции определенного 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-адрес mk: etc ... можно поместить в командную строку HH, чтобы открыть эту тему в обычном окне HTML-справки. Кроме того, он показывает исходное имя файла CHM и относительный путь к файлу при декомпиляции.

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

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

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

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

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

  • KeyHH 1.1

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

1 голос
/ 21 мая 2009

Вдохновлен ответом Лунатика, добавив:

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, лучше предложить более элегантное решение?

1 голос
/ 21 мая 2009

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

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

РЕДАКТИРОВАТЬ: Ссылка на кеш Google?

...