有没有办法从命令行访问VBA帮助文件

时间:2009-05-21 09:07:45

标签: vba chm scite

我将不得不为我正在进行的项目编写一些vba模块,并且更愿意将SciTe用于Office中的内置编辑器。

SciTe允许您将选择的文本作为参数,将命中F1的效果重定向到任意命令。有没有使用此功能来搜索相关的.chm文件?

我猜不是,因为vba的帮助分布在多个文件中,但我希望有人可以证明我错了......

我特别感兴趣的是,如果有人能够找到一种方法来找出特定库帮助所在的chm文件,只需从函数的完全分隔名称中找到。

3 个答案:

答案 0 :(得分:2)

另一种方法是使用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文件中的位置寻址。样式表和脚本确实被提取,因此您也可以使用它们。

另请查看1033文件夹中的XML文件,如VB_ACTOC.XML - 这是Access VBA帮助的目录。它包含主题节点,其中包含帮助文件中每个项目的标签和网址:

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

mk:etc ... url可以放在HH命令行上,在常规HTML帮助窗口中打开该主题。此外,它还显示源CHM文件名,以及反编译时文件的相对路径。

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

使用这些文件,您可以组合一个脚本来按关键字查找/ grep文件并在浏览器中显示它们,或者您可以将文件重新设计为某种数据库或其他查找功能以使用SciTe的基于命令的帮助系统

有些网站提供了有关使用HH.EXE的更多信息:

答案 1 :(得分:1)

Program Files\OFFICE11\1033中保存了主要文件(对于Office 2003而言),但访问其中的页面可能有点棘手,因为微软已经逐渐掌握了多年来深入研究CHM文件的能力。安全问题。 This pagedownload)在链接到CHM内的特定页面方面可能仍然可能有一些很好的信息

话虽如此,我认为这个文件不是现在大多数用户显示的默认帮助,但它足够接近,大部分时间都只缺少Office 2007拉皮条。除非您在Office安装期间专门禁用它,否则联机帮助似乎设置为默认值。我认为,URL不是非常友好的SEO,所以无法猜到。我想你可以从诈骗者和工艺网站借用偷偷摸摸的伎俩,这些网址指向谷歌的顶级链接,因此:Range

编辑:Google cache link?

答案 2 :(得分:1)

受Lunatik的回答启发,并补充道:

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的人都可以提出更优雅的解决方案吗?