Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 семестр / vba_2002

.pdf
Скачиваний:
82
Добавлен:
09.04.2015
Размер:
9.9 Mб
Скачать

Использование средств WinHelp System

иHTML Help System

Внастоящее время в приложениях Windows чаше всего используются справочные руководства на основе технологии Windows Help System (WinHelp). Эта система применяется для отображения файлов HLP и поддерживает гипертекстовую разметку документов с целью предоставить пользователю возможность перехода к другой, связанной с текущей, теме. Но Microsoft уже несколько лет пытается заменить систему WinHelp системой HTML Help. Многие новые приложения, которые создаются фирмой Microsoft, для предоставления справочной информации используют систему HTML Help.

Обе эти системы предоставления справочных сведений позволяют разработчику связывать идентификатор контекста с определенным разделом справочного руководства. Таким образом можно отображать разделы справочного руководства в соответствии с требуемым контекстом.

В данной разделе кратко рассмотрены обе системы, которые помогают создавать спра-~ вочные руководства. Способы создания сложных справочных руководств выходят за пределы тем, рассматриваемых в этой книге.

Если вы планируете разрабатывать полномасштабные справочные руководства, то рекомендуется приобрести специальное программное обеспечение, которое предназначено для выполнения этой задачи. Программное обеспечение создания справочных руководств облегчает редактирование таких документов, так как выполняет большую часть рутинных операций. На данный момент существует немало бесплатных, условно-бесплатных, а также коммерческих программ. Возможно, самым популярным приложением а этой области является RoboHELP компании eHelp Corporation, RoboHELP позволяет создавать файлы в формате обеих Систем (WinHeip и HTML Help). Для получения дополнительной информации об этой программе посетите Web-узел по адресу h t t p : //www. ehelp. com.

WinHelp

На рис. 24.7 показан раздел справочного руководства, отображенный с помощью системы WinHelp. Некоторые термины, которые называются словами перехода (jump words), подчеркнуты и выделены другим цветом. Щелчок на слове перехода заставляет систему WinHelp отобразить другое окно, в котором приводится дополнительная информация (часто— определение). Щелчок на слове перехода, которое подчеркнуто непрерывной линией, побуждает систему WinHelp перейти к другому разделу справочного руководства или отобразить вторичное окно для этого раздела.

Рис.24.7.Примериспользования

системыWinHelp

ЧастьVI.Разработкаприложений

629

Основным недостатком системы WinHelp является то, что создание файлов HLP занимает много времени и требует больших трудозатрат. Этой теме посвящена отдельная конференция (comp . os .ms-windows.programmer . winhelp), степень активности обсуждений в которой просто удивляет. Понятно, что создание хорошего файла HLP для системы WinHelp требует большого опыта и определенных навыков в прираммировании.

Для того чтобы создать файл HLP, необходимо иметь текстовый процессор, который поддерживает формат RTF. Большинство текстовых процессоров успешно работают с этим форматом. В их число входит и Microsoft Word. Кроме того, вам необходимо получить копию Microsoft Help Workshop, которая содержит компилятор файлов Help. Утилиту Help Workshop можно приобрести на узле Microsoft по этому адресу: ftp://ftp.microsoft.com/softlito/mslfiles/hcwsetup.exe

Ha Web-узпе издательства содержатся простые откомпилированные файлы HLP, а также файлы в формате RTF и файл HPJ (файл проекта), которые использовались для создания конечных файлов HLP.

HTML Help

Как отмечалось ранее, Microsoft разработала систему HTML Help в качестве нового стандарта систем создания интерактивных, справочных руководств. Эта система компилирует несколько файлов HTML в компактное справочное руководство. Система HTML Help может использовать дополнительные средства, например, графические файлы, элемен/ш управления ActiveX, сценарии, а также документы DHTML (Dynamic HTML),

Система HTML Help использует для отображения данных программу HTML. Help Viewer, которая создана на ядре броузера Internet Explorer. Информация отображается в основном окне, а содержание, указатель и инструменты поиска — на отдельной панели. Кроме того, текст справочного руководства может содержать стандартные гнперссылки, которые указывают на другие разделы справочного руководства или даже на другие узлы в Internet. Важно также, что система HTML Help может получать доступ к файлам, которые хранятся на Web-сервере. Это идеальное средство для предоставления пользователям свежей информации, которой не существовало на момент создания справочного руководства.

Как и в случае WinHelp, вам необходимо использовать спеииальный компилятор, который создает файлы, понятные HTML Help. Описание программы HTML Help Workshop, а также большое количество дополнительных данных приводится на Web-узле компании Microsoft по адресу: h t t p : /7msdn.micrasQft.com./library/tools/htmlhelp/chm/HHIStart.htm.

Для получения представления о процедуре создания файлов HTML отобразите одну из тем интерактивного справочного руководства Excel. После этого щелкните правой кнопкой мыши на документе и выберите Вид^Источник. Если вы выполнили эту команду, у вас появится возможность просмотреть исходный коддокумента.

На Web-узле издательства вы найдете примеры простых файлов в формате HTML Help,атакжефайлов,которыеиспользовалисьдлясозданияэтихпримеров.

630

Глава 24. Предоставление справки в приложениях

Связывание файлов справочного руководства с приложением

Если вы решили использовать одну из "стандартных" систем поддержки справочного руководства (т.е. WinHelp или HTML Help), то конечный файл справочного руководства можно связать с приложением одним из двух способов: с помощью диалогового окна Project Properties (Свойства проекта) или посредством создания специального кода VBA.

В редакторе VBE выберите Tools^xxx Properties (Ссрвис^Свойства ххх) (где ххх соответствует имени проекта). В диалоговом окне Project Properties (Свойства проекта) перейдите на вкладку General (Обшие) и укажите файл справочного руководства, который будет использоваться данным приложением (это может быть, или файл СНМ или HLP).

Хорошей практикой является хранение файлов справочного руководства в той же папке, в которой располагается само приложение. Представленный далее оператор связывает приложение с файлом Myfu n c s . h i p . Этот файл находится в той же папке, что и файл рабочей книги:

ThisWorkbook.VBProject.HelpFile ~ _ ThisWorkbook.Path & "\Myfuncs.hip"

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

Когда пользователь нажимает клавишу <F1> при выборе пользовательской функции в диалоговом окне Мастер функций.

Когда пользователь нажимает клавишу <F1> при отображенном диалоговом окне Us - erForm. Будет отображен раздел справочного руководства, который связан с элементом управления, активным в момент нажатия клавиши <F1>.

Связывание раздела справочного руководства с функцией VBA

Если с помощью кода VBA создаются новые функции рабочею листа, то может возникнуть необходимость связать файл справочного руководства и идентификатор раздел:! с каждой функцией. Как только связь между этими элементами будет установлена, раздел справочного руководства отображается после нажатия клавиши <F1> в диалоговом окне Мастер функций.

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

1.Создайте функцию.

2.Удостоверьтесь, что с проектом связан файл справочного руководства (для получения дополнительной информации обратитесь к предыдущему разделу).

3.В редакторе VBE нажмите клавишу <F2> для активизации окна Object Browser.

Л.Укажите проект в выпадающем списке Project/Library.

5. В списке Classes выберите модуль, который содержит функцию.

6- В окне Member (.Компонент) укажите функцию.

7.Щелкните на функции правой кнопкой мыши и выберите Properties иэ появившегося контекстного меню. Таким образом, будет отображено диалоговое окно Member Options {Свойства компонента).

8.Введите идентификатор контекста раздела справочного руководства, который связан

сэтой функцией. Вы также можете добавить описание функции.

ЧастьVI.Разработкаприложений

631

Диалоговое окно Member Options не позволяет указать новый файл справочного руководства. Это диалоговое окно всегда использует файл, который ранее связан с проектом.

Может оказаться, что проще создать код VBA, который будет настраивать идентификатор контекста и файл справочного руководства для новых функций. Для этого воспользуйтесь методом MacroOptions. Следующая процедура использует метод MacroOptions для определения описания функции, применяемого файла справочного руководства и идентификатора контекста для двух функций (AddTwo и Squared):

Sub

SetOptionsU

 

 

1

Установить параметры для функции AddTwo

 

 

 

Application.MacroOptions Macro:="AddTwo",

_

 

 

Description ; - " Возвращает сумму двух; чисел", _

 

HelpFile:=ThisWorkbook.Pazh & "\Myfuncs.hip",

_

 

HelpContextID:=100Q

 

 

'

Установить параметры для функции Squared

 

 

 

Application.MacroOptions Macro:~"Squared",

_

 

 

Description:="Возвращает квадрат аргумента",

_

 

HelpFile :=ThisWorkbook. Pa"h & " \Myfuncs .hip", __

 

HelpContextID:=2000

 

 

End

Sub

 

 

Рабочая книга на Web-узпе издательства демонстрирует применение этой методики.

Отображение справочной информации с помощью пользовательского диалогового окна

Каждый элемент управления в диалоговом окне UserForm, а также само диалоговое окно UserForm имеют связанный раздел справочного руководства. Файл справочного руководства, который содержит соответствующий раздел, обязательно связан с проектом. Тип предоставляемой справочной информации определяется несколькими свойствами диалогового окна UserForm.

WhatsThisButton. Если это свойство установлено в значение True, то диалоговое окно UserForm отображает небольшой символ знака вопроса в строке заголовка. Пользователь может щелкнуть на этой кнопке, чтобы затем щелкнуть на элементе управления диалогового окна UserForm с целью получить справочную информацию.

WhatsThisHelp. Бели это свойство установлено в значение True, то справочная информация для каждого -элемента управления предоставляется в виде всплывающего окна, которое отображает только название раздела справочного руководства.

Свойство WhatsThisHelp должно быть установлено в значение True, чтобы свойство WhatsThisButton можно было установить в значение True. Другими словами, возможны только три комбинации значении свойств KhatsThisButton и WhatsThisHelp. В табл. 24.1 описывается результат использования каждой комбинации значений-

632

Глава 24. Предоставление справки в приложениях

Таблица 24.1. Установка значений свойств WhatsThisHetp и WhatsThisButton

whatsThisHelp

WhatsThisButton

Результат

True

True

Отображается символ знака вопроса; нажатие клавиши

 

 

<F1> приводит к отображению всплывающего окна со спра-

 

 

вочной информацией

Тше

False

He отображается символ знака вопроса; нажатие клавиши

 

 

<F1> приводит к отображению всплывающего окна со спра-

 

 

вочной информацией

False

False

He отображается символ знака вопроса; нажатие клавиши

 

 

<F1> приводит к отображению всего раздела справочного

 

 

руководства

Другиеспособыотображениясправочного руководства в форматеWinHelp или HTML Help

VBA предоставляет несколько дополнительных способов отображения разделов справочного руководстваЭти способы рассматриваются в следующих разделах.

ИспользованиеметодаHelp

Воспользуйтесь методом Help объекта Application для отображения файла справочно! о руководства. Этот файл может иметь как формат WinHelp HLP, гак и формат HTML Help CHM. Данный метод работает даже тогда, когда для файла не определены идентификаторы контекста.

Метод Help имеет следующий синтаксис: Application.Help(helpFile, helpContextID)

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

Следующий пример отображает раздел файла Myapp.hlp, принятый по умолчанию. Файл должен находиться в той же папке, что и рабочая книга приложения, из которого он вызывается. Обратите внимание: второй аргумент не указан.

Sub ShowHelpContents()

Application.Help ThisWorkbook.Path & "\Myapp,hip" End Sub

Представленный далее оператор отображает раздел справочного руководства с идентификатором контекста 1002. При этом используется файл справочного руководства в формате HTML Help, который называется Муарр. chm:

Application.Help ThisWorkbook.Path & "\Myapp.chm", 1002

Отображение справочной информации вокнесообщения

При использовании функции VBA MsgBox для отображения окна сообщения можно

 

отобразить кнопку Help (Справка), применив константу vbMsgBoxHelpButton в качестве

 

Часть VI. Разработка приложений

633

второго аргумента функции MsgBox. Кроме того, необходимо в качестве четвертого аргумента указать имя файла справочного руководства. Пятый аргумент (который не обязателен) используется с целью задать идентификатор контекста. Следующий код демонстрирует пример создания окна сообщения, показанного на рис. 24.8:

Sub MsgBoxHelpO

Msg = "Хотите завершить работу?"

Buttons = vbQuestion + vbYesNo + vbMsgBoxHelpButton HelpFile = Thisworkbook.Path & "\AppHelp.hlp" ContextXD = 1002

Ans = MsgBox(Msg, Buttons, , HelpFile, ContextlD) If Ans = vbYes Then Call CloseDown

End Sub

Отображение справочной информации в окне ввода данных

Функция VBA i n p u t B o x может отображать кнопку Help (Справка), если шестой аргумент этой функции содержит имя файла справочного руководства. В приведенном далее примере создается окно ввода данных, которое показано на рис. 24.9.

Sub ShowlnputBox{)

Msg = "Введите значение" Defaultval = 0

HFile = ThisWorkbook.Path & 11\AppHelp.hlp" ContextID = 1002

x = inputBox( _ Prompt:=Msg, _ Default:=DefaultVal, _ HelpFile:=HFile, __ Context:=ContextID)

End Sub

Put: 24.8. Окно сообщения

Рис. 24.9. Окно ввода данных с кноп-

с кнопкой Справка

кой Help (Справка)

Резюме

В этой главе рассматривалось несколько альтернативных методов предоставления справочной информации для конечных пользователей. В число этих методов входит использование стандартных систем создания справочных руководств (WinHelp и HTML Help), а также "неофициальных", которые требуют применения специфичных для Excel методик отображения справочной информации.

Следующая глава завершает часть VI. Вы будете иметь возможность ознакомиться с примерами приложений, ориентированных на конечного пользователя.

634

Глава 24. Предоставление справки в приложениях

Разработка

приложений для пользователей

Вэтой главе сведена вся информация, представленная

впредыдущих главах. В данной главе описывается приложение, ориентированное на конечного пользователя,— мастер расчета займа. Это приложение нашло практическое применение, хотя мы будем использовать его для изучения методов разработки приложений, ориентированных на пользователя.

Определение приложения, ориентированного на пользователя

Приложение, ориентированное на пользователя, — это приложение Excel, которое можно использовать без специальной подготовки. Такие приложения позволяет получить конечный результат даже тем пользователям, которые совершенно ничего не знают об Excel.

Приложение мастера расчета займа, которое рассматривается в этой главе, относится к приложениям, ориентированным на пользователя, так как разрабатывалось специально, чтобы помочь пользователям, которые совершенно ничего не знают о функционировании Excel. Ответ на несколько простых вопросов приводит к созданию полезного и гибкого рабочего листа, содержащего необходимые формулы.

Мастер расчета займа

Приложение мастера расчета займа создает рабочий лист, который содержит расписание погашения займа с фиксированной процентной ставкой. Расписание амортизации представлено в виде информации о ежемесячных выплатах. Таким образом, отображаются сведения о сумме ежемесячных выплат,

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

Альтернативой такого приложения можно считать файл шаблона (*,XLT) с необходимыми формулами. Далее вы убедитесь, что приложение в форме мастера предоставляет несколько дополнительных преимуществ.

На рис. 25.1 показано расписание амортизации, которое создано приложением мастера расчета займа.

Это приложение доступно на Web-узле издательства. Оно сохранено в виде незащищенной надстройки Excel.

Использование приложения

Приложение мастера расчета займа отображает последовательность из пяти диалоговых окон, которые запрашивают информацию у пользователя. Как и другие мастера, это приложение позволяет перемешаться вперед и назад по этапам работы мастера. Щелчок на кнопке Готово приводит к созданию нового рабочего листа.

Данное приложение использует единственное диалоговое окно UserForm с элементом управления M u l t i P a g e , которое содержит вкладки для всех пяти этапов работы мастера (рис. 25.2-25.6).

Рис. 25./. Эторасписание амортизации займа наглядно знакомит с выплатамикредитаподзалогнедвижимости,выданногосрокомна30лет

S36

Глава 25. Разработка приложенийдляпользователей

Рис. 25.2. Первый этап работы приложе-

Рис. 25.3. Второй этап работы прило-

ния мастера расчета займа

жения мастера расчета займа

Рис. 25.4. Третий этап работы приложе-

Рис. 25.5. Четвертый этап работы при-

ния мастера расчета займа

шжениямастерарасчетазайма

Рис.25.6,Пятыйэтапработыприложениямастерарасчетазайма

Структура рабочей книги

Приложение iwacTepa расчета займа состоит из следующих компонентов.

FormMain — диалоговое окно UserForrn, которое служит основным пользовательским интерфейсом.

FormHelp — диалоговое окно UserForm, которое используется для отображения интерактивного справочного руководства.

• H e l p S h e e t — рабочий лист,

который содержит текст, отображаемый в интерактив-

ном справочном руководстве.

 

Часть VI. Разработка приложений

637

ModMain — модуль VBA, который содержит процедуру, отображающую основное диалоговое окно UserForm.

ThisWorkbook — модуль кода этого объекта содержит процедуры обработки событий Open и Bef oreClose объекта Workbook, что позволяет создавать и удалять необходимые меню.

Создание приложения мастера расчета займа

Приложение мастера расчета займа начиналось с простой концепции и смогло развиться в относительно сложный проект. Основной целью была демонстрация максимального количества методов разработки приложений, при этом необходимо было создать продукт, который приносит реальную пользу. Конечный результат можно было увидеть еще до начала разработки приложения, но основной идеей было создание конечного приложения, а не получение рассчитанных данных.

Основная цель приложения традиционно очень проста. Необходимо создать приложение, которое собирает от пользователя информацию и создает рабочий лист. Но в процессе разработки возникли идеи по расширению возможностей приложения. В итоге процесс несколько раз заходил в тупик. Кто-то может назвать эти эксперименты напрасной тратой времени, то они являются неотъемлемой частью обучения способам разработки приложений.

Проект был завершен в течение одного (длинного) дня. Еще несколько часов потрачено на тонкую настройку и тестирование приложения.

Как это работает

Приложение мастера расчета займа является надстройкой Excel, поэтому его необходимо устанавливать с помощью команды С е р в и с а Надстройки. Но приложение также будет работать, если его открыть с помощью команды Файл^Открыть.

Добавление опции меню

Когда рабочая книга открывается, процедура Workbook_Open добавляет новую опцию Мастер погашения займа а меню Сервис. Щелчок на этой опции меню приводит к запуску процедуры Start/jrtortizationWizard, которая отображает диалоговое окно FormMain.

Глава 23 содержит более подробную информацию о создании новых опций меню.

Инициализация диалогового окна FormMain

Процедура UserForm._Initialize для диалогового окна FormMain выполняет достаточно большой объем работы.

Значение свойства Value элемента управления MultiPage устанавливается равным 0. Это обеспечивает отображение нерпой страницы элемента управления MultiPage, независимо от того, когда рабочая книга сохранялась в последний раз.

Добавляются опции к выпадающим спискам трех элементов управления ComboBox, который находятся в диалоговом окне.

Вызывается процедура GetDefaults для установки значений, которые использовались в последний раз и хранятся в системном реестре (информация об этом приводится в разделе ''Сохранение и получение значений по умолчанию" далее в этой главе).

638

Глава25.Разработкаприложенийдляпользователей

Соседние файлы в папке 2 семестр