Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Разработка приложений - с помощью Excel 97 и VBA
<<-[Весь Текст]
Страница: из 7
 <<-
 
таблица, содержащая их компоненты (рис. 3).

Рис. 3
Создание сводной таблицы
Приступаем к созданию процедуры CreatePivotTable, которая формирует сводную 
таблицу на основе исходной таблицы компонентов. Как мы сейчас убедимся, 
программный код этой процедуры довольно небольшой, но писать его вручную — дело 
довольно утомительное. Поэтому лучше воспользоваться мастером Pivot Table 
Wizard, а затем модифицировать созданный при этом код в более универсальный вид.

ШАГ 8. Перейдем в среду Excel так, чтобы на экране была видна созданная нами 
исходная электронная таблица (рис. 3). Зададим режим записи макрокоманды с 
помощью команды Tools|Macro|Record New Macro (на панели Status Bar появится 
слово Recording). Оставим имя создаваемой макрокоманды, предлагаемой по 
умолчанию. Затем командой Data|PivotTable Report запустим Мастер создания 
сводных таблиц, который будет последовательно предлагать выполнить четыре 
операции с помощью выводимых им диалоговых окон.
В первом окне оставим предлагаемый по умолчанию вариант создания сводной 
таблицы — Microsoft Excel list or database — и нажмем кнопку Next (рис. 4). 
Следующий шаг также пройдем, ничего не меняя. 

Рис. 4
Третий шаг — самый важный: формирование структуры сводной таблицы. На экране 
появится диалоговое окно с изображением схемы таблицы (рис. 5). 

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

Рис. 7
Для этого наименование “Проект” нужно поместить в поле “COLUMN”, “Тип” и “Файл” 
— в “ROW”, а затем “Файл” — в “DATA”.
Заключительный, четвертый шаг также пройдем, ничего не меняя (будет 
использоваться переключатель New worksheet) — нажав кнопку Finish. У нас 
появится созданная мастером сводная таблица. Теперь остановим режим записи 
макрокоманды — Tools|Macro|Stop Recording.
ШАГ 9. Вернемся в среду VBA. Там в окне проектов мы увидим, что у нас появился 
новый модуль, а в нем — процедура примерно такого вида:
Sub Macro1()
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, _
SourceData:=”Sheet1!R1C1:R16C3", _
TableDestination:=””, TableName:=”PivotTable1"
ActiveSheet.PivotTables(“PivotTable1”).AddFields _
RowFields:=Array(“Тип”, “Файл”), _
ColumnFields:=”Проект”
ActiveSheet.PivotTables(“PivotTable1”). _
PivotFields(“Файл”).Orientation = x1DataField
End Sub
 
Скопируем ее в наш основной модуль PivotVBP, переименуем в CreatePivotTable, а 
модуль Module1 удалим из проекта. В приведенном выше коде видно, что первая 
строка использует ссылку на конкретный диапазон из 16 строк. Чтобы использовать 
данную процедуру для любого числа строк, необходимо добавить только две строки 
кода для выделения ячейки, расположенной выше на одну строку. При этом мы будем 
использовать метод CurrentRegion объекта Selection для выделения смежных строк 
и столбцов. Необходимо также изменить аргумент SourceData = Selection у метода 
PivotTableWizard, чтобы использовать объект Selection в качестве диапазона. 
Результат нашей работы приведен в листинге 3.
ШАГ 10. Убедимся в работоспособности нашего приложения. Запустим на выполнение 
процедуру CreateVBProjCrossRef. Затем, последовательно выбирая файлы в окне 
“Загрузить файл VB-проекта”, сформируйте исходную таблицу компонентов. 
Завершите операцию выбора файлов, нажав в окне кнопку Cansel, и вы увидите 
сводную таблицу компонентов VB-проектов. 
Структура Excel-приложения
ШАГ 11. Посмотрим внимательнее на структуру созданного нами приложения — 
рабочей книги PivotVBP.XLS (рис.7). Группа Microsoft Excel Objects представлена 
двумя компонентами ThisWorkbook и Sheet1 (SourceSheet). Число компонентов Sheet 
— электронных таблиц — может меняться, причем и непосредственно в ходе работы 
приложения. Каждому объекту этой группы соответствуют программные модули (для 
их просмотра следует дважды щелкнуть название объекта в окне проектов), в 
которых можно задействовать предусмотренные для них событийные процедуры (рис.
8).

Рис. 8
Записать какие-либо другие процедуры можно только в модули кода. В данном 
проекте мы создали два таких модуля — PivotVBP и Service. Распределяя процедуры 
между двумя модулями, мы хотели подчеркнуть специфику подпрограмм. В PivotVBP 
 
<<-[Весь Текст]
Страница: из 7
 <<-