Разработка приложений



         

Разработка приложений с помощью Excel 97 и VBA - часть 6


Например, на данном этапе можно просто превратить в комментарии все операторы в CreateVBProjCrossRef, оставив только обращение к SetUpHeadings. Запустите программу на выполнение и убедитесь, что заголовки формируются правильно. Обратите внимание на то, что пока они записываются в текущую позицию курсора. Может быть, вы хотите сделать очистку таблицы и установку курсора в ее начало по умолчанию? Пару необходимых для этого строк вы можете написать самостоятельно в любой момент — сейчас или позднее.

Напомним также, что при работе в среде VBA при запуске приложения на выполнение (Run/F5) управление передается компоненте (в данном случае — процедуре), которая в данный момент находится в активном окне среды. Так что перед тем, как нажать F5, установите текстовый курсор в окне кода на процедуру CreateVBProjCrossRef.

ШАГ 4. Пишем процедуру LoadProjectFile, ключевую для всего проекта — формирование исходной таблицы компонентов. Она работает в цикле, обращаясь к стандартному диалоговому окну для определения имени существующего файла (рис. 2). С этой целью используется метод GetOpenFilename объекта Application и расширения .MAK и .VBP для идентификации файлов проектов. Если пользователь вместо выбора файла (кнопка Open) нажимает Cancel, формирование таблицы заканчивается и функция возвращает в вызывающую программу значение True или False в зависимости от того, был ли выбран хотя бы один проект или нет.

Тип выбранного файла (MAK или VBP) можно определить по расширению его имени. Но мы здесь делаем по-другому: файл проекта открывается и проверяется наличие знака равенства в первой строке (см. листинги 1 и 2). Обратите внимание, что в случае MAK-файла необходимо установить указатель чтения/записи внутри файла в его начало, чтобы учесть первую строку при формировании списка компонентов.

Рис. 2

После этого вызывается соответствующая процедура — LoadMAK или LoadVBP, чтобы загрузить информацию из файла проекта в коллекцию Files, а затем поместить эту информацию из коллекции Files в электронную таблицу. Обратите внимание, что первый цикл For...Next просматривает коллекцию Files, а второй цикл For...Next — массив, содержащий детальную информацию для каждого файла.




Содержание  Назад  Вперед