Курсовая работа: Организация документооборота с помощью "Visual Basic for Application"
Одним из способов создания кода модуля VBA является запись последовательности действий с помощью специальной функции записи макросов Excel.
В следующем примере показано, как записать макрос, изменяющий ориентацию страницы на альбомную. Если вы хотите получить его самостоятельно, то начните работу с пустой рабочей книги и выполните следующие действия.
1. Активизируйте рабочий лист в книге (подойдет любой лист).
2. Выберите команду Сервис – Макрос - Начать запись.
При этом Excel отображает диалоговое окно Запись макроса.
3. Щелкните на кнопке ОК. чтобы принять параметры по умолчанию.
Excel автоматически вставляет новый модуль VBA в проект. Начиная с этого момента Excel, преобразовывает ваши действия в код VBA. При записи в строке состояния отображается слово Запись, кроме того, в окно добавляется небольшая плавающая панель инструментов, содержащая две кнопки (Остановить запись и Относительная ссылка).
4. Выполните команду Файл - Параметры страницы.
Excel отображает диалоговое окно Параметры страницы.
Выберите переключатель Альбомная и щелкните на кнопке ОК, чтобы закрыть диалоговое окно.
Щелкните на кнопке Остановить запись на панели инструментов (или выберите Сервис—Макрос - Остановить запись).
Excel прекращает записывать ваши действия.
Чтобы просмотреть макрос, запустите VBE (проще всего нажать <Alt+F11>) и найдите проект в окне 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