|
Разработка приложений
с помощью Excel 97 и VBA
Создание приложения, осуществляющего контроль
за использованием компонентов проектов
В КомпьютерПресс № 8’98 мы уже рассказывали о том, как разрабатывать приложения
с помощью Excel 97 и VBA. Сегодня мы продолжаем разговор на эту тему и хотим
акцентировать ваше внимание на некоторых других вопросах создания законченных
приложений на базе Excel на примере еще одной реальной программы.
В ходе разработки различных приложений у вас накапливается все больше повторно
используемых компонентов, и на контроль за ними уходит довольно много времени.
К примеру, как определить, какой файл используется в проекте OBJobAgent —
SPREAD.VBX или его новая версия SSVBX25.VBX? Где используется модуль OBORD32 —
в проекте OBSuper или совместно с проектом AvailAgent? Подобных вопросов
огромное множество.
Чтобы облегчить управление повторно используемыми компонентами, применяются
хранилища (репозитарии) исходного кода, однако многие небольшие организации не
работают с ними. В качестве “упрощенного” решения можно порекомендовать
воспользоваться Excel 97 для формирования сводных таблиц, в которых отражено
использование компонентов в каких-либо проектах.
Файлы проектов VB представляют собой обычные ASCII-файлы, содержащие пути и
имена файлов, из которых состоит проект. До версии VB 3.0 включительно описание
проекта хранилось в MAK-файлах и включало достаточно простой список имен
компонентов (см. листинг 1). Начиная с VB4, этот файл получил расширение VBP, а
состав и структура хранящейся в нем информации существенно изменились (см.
листинг 2).
Листинг 1. Фрагмент типичного MAK-файла
в VB3 содержит список компонентов проекта
SHOPVW2.FRM
C:\WINDOWS\SYSTEM\CMDIALOG.VBX
SHOPVIEW.BAS
..\OBORD3.BAS
..\SOTDTS.BAS
..\SUNOP.BAS
C:\WINDOWS\SYSTEM\THREED.VBX
...
FMULTSCH.FRM
FPRTRAV.FRM
ProjWinSize=26,541,257,481
ProjWinShow=2
Command=”\\anl_ver1\database”
IconForm=”FrmMain”
Title=”MapView”
ExeName=”ANALYT.EXE”
Листинг 2. Фрагмент типичного VBP-файла в VB5, содержащий список компонентов
проекта.
Type=Exe
Object={00028C01-0000-0000-0000-000000000046}#1.0#0;DBGRID32.OCX
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0# _
C:\WINDOWS\SYSTEM\STDOLE2.TLB#Standard OLE Types
Reference=*\G{00025E04-0000-0000-C000-000000000046}#3.5#0# _
C:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\DC:\PROGRAM _
FIL#Microsoft DAO 2.5 Object Library
Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.1#0; _
COMDLG32.OCX
...
Module=OBOrd32; ..\OBOrd32.bas
Module=OBStock32; ..\Obstock32.bas
Form=..\Aboutbox32.frm
Module=Spread32; ..\Spread32.bas
Module=MAPI32; ..\Mapi32.bas
IconForm=”frmMain”
Startup=”frmMain”
HelpFile=””
Title=”MapView”
ExeName32=”Analyt.exe”
...
Идея, которую мы собираем воплотить, заключается в следующем. Работая в Excel,
мы будем последовательно открывать интересующие нас файлы проектов и
формировать таблицу со всеми используемыми в этих приложениях компонентами, а
потом на основе этой информации создадим итоговую сводную таблицу (см. рис. 1)
Такая задача может решаться несколькими способами. Например, вы можете написать
необходимые процедуры на VB5 и вызвать Excel в качестве сервера ActiveX. Однако
здесь мы покажем, как написать эти процедуры в среде самого Excel, используя
VBA.
Рис. 1
ПРИМЕЧАНИЕ. Пусть читателей не смущает заголовок “Count of Файл” на рис.1. Мы
специально хотели продемонстрировать возможные языковые проблемы, когда
русскоязычное приложение делается в английской версии офисного пакета —
|
|