2013-05-28 2 views
1

У меня есть .xlam-файл, который добавляет некоторые опции меню для Excel. Я хотел бы добавить помощь надстройкой, но, похоже, не может найти элегантного решения для этого. Вот варианты я пытался:Включить помощь в дополнение к excel

MsgBox: Добавить выпадающее меню, в котором каждый элемент запускает окно с сообщением. Это не работает, потому что существует ограничение на то, сколько текста может отображаться в окне сообщения. Моя помощь должна быть длиннее, поэтому она усекает ее.

UserForm: Добавить форму для отображения справки в текстовом поле, которое заблокировано. Это позволяет мне отображать более длинный текст с помощью полосы прокрутки, а также позволяет пользователям копировать разделы текста. Проблема в том, что моя надстройка защищена, и я проверил «Заблокировать проект для просмотра», всякий раз, когда пользователь открывает эту форму и позже закрывает excel, он запрашивает пароль надстройки. Я проверил этот сайт и google и, похоже, не существует жизнеспособного решения этой проблемы.

Мой вопрос: Какие альтернативы доступны для отображения справки для надстройки?

+0

@chrisneilsen, спасибо за это предложение, но для этого требуется, чтобы каждый пользователь также имел файл '.chm' на своей машине, а не только файл' .xlam'. Я ищу что-то, что может быть встроено, чтобы моя надстройка оставалась только одним файлом. – neelsg

ответ

5

Я сделал это путем встраивания файла в формате PDF в «This_Workbook» как объект OLE и используемого VBA для запуска его открытия с помощью следующего кода VBA:

Поставщик OLE PDF был назван objPDF:

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

и модуль, который вызывает файл использует эту функцию

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

Таким образом, PDF-файл проходит через надстройку скрытым образом, и когда кто-то нажимает кнопку помощи, вы можете позвонить openPDF() и выйдет PDF-файл. Я думаю, что это более элегантно, чем развертывание разделенного файла.

2

Я использую файл .chm, расположенный в той же папке, что и XLAM.
Вызывается из VBA с использованием Application.Help

Application.Help ThisWorkbook.Path & "\" & gstrHelpFile, jContextid 
Смежные вопросы