包括帮助在Excel加载项

我有一个.xlam文件,为excel增加了一些菜单选项。 我想添加帮助,但似乎无法find一个优雅的解决scheme。 以下是我尝试过的选项:

MsgBox:添加一个下拉菜单,其中每个项目启动一个消息框。 这样做效果不佳,因为在消息框中可以显示多less文本是有限制的。 我的帮助将需要更长的时间,所以它会截断它。

用户窗体:添加一个用户窗体,在locking的文本框中显示帮助。 这使我可以使用滚动条显示更长的文本,并允许用户复制文本的各个部分。 问题是,因为我的加载项是受保护的,并且选中了“locking项目以供查看”,每当用户打开此表单并稍后closuresExcel时,它会提示input加载项密码。 我已经检查了这个网站和谷歌似乎并没有一个可行的解决scheme,这个问题。

我的问题是:我有什么替代方法可以显示外接程序的帮助?

我通过在“This_Workbook”中embedded一个PDF文件作为一个OLE对象来完成这个工作,并使用VBA通过下面的VBA代码来触发它的打开:

OLE pdf被命名为objPDF

 Public Function getPdfReference() As OLEObject Set getPdfReference = Worksheets("Plan1").OLEObjects.Item("objPDF") End Function 

而调用该文件的模块使用此function

 Public Sub openPDF() Dim obj As OLEObject Set obj = This_Workbook.getPdfReference() obj.Activate 'opens the PDF file End Sub 

这样,PDF就会在加载项中以隐藏的方式进行,当有人点击帮助button时,您可以调用openPDF()并popupPDF。 我认为这比部署一个分离的文件更优雅。

我使用位于与XLAM相同的文件夹中的.chm文件。
使用Application.Help从VBA调用

 Application.Help ThisWorkbook.Path & "\" & gstrHelpFile, jContextid