Организация документооборота с помощью "Visual Basic for Application"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

?оманду Сервис Макрос - Начать запись.
При этом Excel отображает диалоговое окно Запись макроса.

3.Щелкните на кнопке ОК. чтобы принять параметры по умолчанию.

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

4.Выполните команду Файл - Параметры страницы.
Excel отображает диалоговое окно Параметры страницы.

Выберите переключатель Альбомная и щелкните на кнопке ОК, чтобы закрыть диалоговое окно.

Щелкните на кнопке Остановить запись на панели инструментов (или выберите СервисМакрос - Остановить запись).

Excel прекращает записывать ваши действия.

Чтобы просмотреть макрос, запустите VBE (проще всего нажать ) и найдите проект в окне Project Explorer. Щелкните на узле Modules, чтобы развернуть его. Затем щелкните на элементе Module 1. чтобы отобразить окно кода (если в проекте уже присутствовал модуль Module1, новый макрос будет находиться в модуле Module2). Код, созданный одной командой, представлен в листинге 1. Если вы используете не Excel 2002, а иную версию, текст программы может немного отличаться.

 

Листинг 1. Макрос изменения ориентации страницы на альбомную

Sub Макрос1()

Макрос1 Макрос

1 Макрос записан 19.08.2003

With ActiveSheet.PageSetup

.PrintTitleRows = ""

.PrintTitleColumns = ""

End With

ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "n .LeftFooter = "" .CenterFooter = " .RightFooter = ""

.LeftMargin = Application JInchesToPoints (0 . 787401575) .RightMargin = Application.InchesToPoints(0.787401575) .TopMargin = Application.InchesToPoints(0.984251969) .ButtonMargin = Application.InchesToPoints(0.984251969) . HeaderMargin = Application. InchesToPoints (0.5) .FooterMargin = Applicatior.InchesToPoints (0.5) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments PrintQuality = 1200 CenterHorizontally = False . Center-Vertically = False .Orientation - xlLandscape .Draft = False .PaperSize xlPaperA4 . FirstPageNumber - xlAutoma tic .Order = xlDownThenOver .BlackAndWhite = False

Zoom = 100

.PrintErrors = xlPrintErrorsDisplayed

End With

End Sub

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

Таким образом, зачастую программа, полученная при записи макроса, избыточна. Если вы хотите, чтобы макрос всего лишь изменял ориентацию страницы на альбомную, то можно значительно упростить макрос, удалив ненужный код. Это облегчит восприятие макроса и ускорит его выполнение, поскольку избавит его от лишних операций. Упростить макрос вы вправе до следующего вида:

Sub Makrocl

With ActiveSheet.PageSetup

.Orientation = xl Landscape

End With End Sub

Мы удалили весь код, кроме строки, изменяющей свойство Orientation. На самом деле данный макрос можно упростить еще больше, так как конструкция With-End не обязательна при изменении только одного свойства.

Sub Makrocl

ActiveSheet.PageSetup.Orientation = xlLandscape

End Sub

В данном примере макрос изменяет свойство Orienation объекта PageSetup активного листа. Отметим, что xlLandscape - это встроенная константа, которая имеет значение 2. Поэтому следующий макрос работает как и предыдущий Makrocl:

Sub Makroc 1

ActiveSheet.PageSetup.Orientation = 2

End Sub

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

 

1.2.1 Об объектах и коллекциях

 

Работая с кодом VBA в Excel, необходимо четко понимать назначение объектов и объектноймодели Excel. Целесообразнее рассматривать объекты с точки зрения иерархической структуры.

 

Иерархия объектов

На вершине объектной модели находятся объект Application в данном случае Excel. Но если вы программируете в VBA, запуская VBE в Microsoft Word, то объектом Application будет выступать Word.

Объект Application (то есть Excel) содержит другие объекты. Ниже приведено несколько примеров объектов, которые находятся в объекте Application:

Workbooks (коллекция всех объектов Workbook рабочих книг);

Windows (коллекция всех объектов window окон);

Addlns (коллекция всех объектов Addln надстроек).

Некоторые объекты могут содержать другие объекты. Например, коллекция Workbooks состоит из всех открытых объектов Workbook, а объект Workbook включает другие объекты, некоторые из которых представлены ниже:

Worksheets (коллекция объектов Worksheet рабочих листов);

Charts (коллекция объектов Chart диаграмм);

Names (коллекция объектов Name имен).

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

Worksheets состоит из всех объектов Worksheet рабочей книги Workbook. Объект

Worksheet включает другие объекты, среди которых следующие:

ChartObjects (коллекция объектов ChartQbject элементов диаграмм);

Range диапазон;

PageSetup параметры страницы;

PivotTables (коллекция объектов PivotTable сводных таблиц).

О коллекциях

Одной из ключевых концепций в программировании на языке VBA являются коллекции.

Коллекция это группа объектов одного класса (и сама коллекция тоже является объектом).

Как указывалось выше. Workbooks это коллекция всех открытых в данный момент объектов Workbook. Worksheets коллекция всех объектов Worksheet, которые содержится в конкретном объекте Workbook. Вы можете одновременно управлять целой ко