Главная страница
Навигация по странице:

  • Макрос  Запись макроса

  • Макросы

  • Задание

  • Макрос  Запись макроса.

  • Макрос Макрос . Выбрать нужный макрос. Щелкнуть по кнопке Изменить

  • ЛР Макросы 1 (1). Лабораторная работа 1 Макросы


    Скачать 112.5 Kb.
    НазваниеЛабораторная работа 1 Макросы
    Дата20.10.2022
    Размер112.5 Kb.
    Формат файлаdocx
    Имя файлаЛР Макросы 1 (1).docx
    ТипЛабораторная работа
    #744982

    Лабораторная работа № 1 Макросы


    Макрос — это программа, состоящая из списка команд, которые должны быть выполнены приложением. Макрос служит для объединения нескольких различных действий в одну процедуру, которую вы можете легко вызвать. Этот список команд состоит в основном из макрокоманд,которые тесно связаны с командами приложения, в котором вы создаете макрос — т. е. с командами Word, Excel или других приложений Microsoft Office. Запись макросов позволяет не просто запомнить последовательность вызовов команд меню, нажатий на кнопки мыши и ввод данных с клавиатуры, но и перевести эти действия на объектно-ориентированный язык программирования Visual Basic для приложений (Visual Basic for Applications, в дальнейшем просто VBA) и сохранить их в виде готовой к вы- полнению программы.

    VBA является полноценным языком программирования, позволяющим записать не только последовательно выполняемые пользователем действия, но и содержащим все необходимые конструкции языка программирования высокого уровня, включая разнообразные средства организации ветвлений, циклов и ведения диалога с пользователем. Весьма удобный редактор VBA позволяет не только писать и редактировать программы, но и вести их отладку.

    Можно выделить следующие разновидности макросов:

    • Командные макросы — это наиболее распространенные макросы, обычно состоящие из операторов, эквивалентных тем или иным командам меню или параметрам диалоговых окон. Основным предназначением такого макроса является выполнение действий, аналогичных командам меню т. е. изменение окружения и основных объектов приложения

    • Пользовательскиефункции работают аналогично встроенным функциям Excel. Отличие этих функций от командных макросов состоит в том, что они используют значения передаваемых им аргументов, производят некоторые вычисления и возвращают результат в точку вызова, но не изменяют среды приложения

    • Макрофункции — представляют собой сочетание командных макросов и пользовательских функций. Наряду с тем, что они могут использовать аргументы и возвращать результат, подобно пользовательским функциям, они могут также изменять среду приложения, как и командные макросы. Чаще всего эти макросы вызываются из других макросов, и активно используются для модульного программирования. Если необходимо выполнить ряд одинаковых действий в различных макросах, то обычно эти действия выделяются в отдельную макрофункцию (подпрограмму), которая вызывается всякий раз, когда необходимо выполнить эти повторяющиеся действия.

    Автоматическая запись макросов


    Для автоматической записи макроса надо выполнить следующие действия:

    1. В обычном режиме выполнить команды, которые надо сохранить в макросе. Это надо сделать, чтобы четко выполнить последовательность команд.

    2. Перейти в режим записи макроса.

    3. Задать имя макроса.

    4. Выполнить необходимую последовательность команд.

    5. Выйти из режима записи макроса. Рассмотрим подробнее пункты со 2 по 5.

    Для переход в режим записи макроса надо на вкладке Разработчик выполнить команду Макрос Запись макроса. В появившемся окне задать имя макроса.



    Рис.1

    Имя макроса может содержать буквы и цифры и не может содержать пробелы. Можно связать выполнение макроса с комбинацией клавиш. Эта комбинация так же задается в окне записи макроса. В этом же окне можно описать, что делает данный макрос.

    После щелчка по кнопке OK. Выполняется последовательность команд, которую надо запомнить в макросе.

    В конце выполняется команда Макрос  Остановить запись. Вызвать макрос можно двумя способами.

    1 способ

    Выполнить команду Макросы Макросы. В окне Макрос (Рис.2) выбрать нужный макрос и щелкнуть по кнопке Выполнить.



    В этом же окне можно удалить макрос, который работает не правильно. 2 способ

    Нажать комбинацию клавиш, связанную с данным макросом.

    Задание 1

    Создать макрос, который выделяет диапазон таблицы A1:D5, и выполняет его обрамление. Внешние границы обрамления - двойная линия. Внутренние линии - одинарные. Результат:



    Имя макроса обрамление1. Комбинация клавиш: Ctrl+й.

    После записи макроса перейдите на новый лист и вызовите макрос любым из описанных способов. Обратите внимание, что во всех случаях выполнение макроса связано с конкретным диапазоном A1:D5, но не привязано к листу данной книги.

    Можно записать командный макрос привязанный не к конкретным ячейкам, а к положению курсора. Для этого надо записывать макрос в режиме относительной адресации.

    Задание 2

    Создать макрос, который выполняет обрамление 4 столбцов и 5 строк. Внешние границы обрамления - двойная линия. Внутренние линии - одинарные. Порядок выполнения:

    1. Установите курсор в ячейку A1.

    2. Выполните команду Макрос Запись макроса.

    3. Задайте имя макроса обрамление2. комбинация клавиш Ctrl+ц.

    4. После щелчка по кнопке OK выполните команду Макрос

    Относительные ссылки.


    1. Выделите диапазон A1:D5.

    2. Выполните заданное обрамление диапазона.

    3. Выполните команду Макрос Остановить запись.

    После записи макроса поставьте курсор в ячейку D8 и выполните макрос

    обрамление2.

    В обоих заданиях выделение диапазона выполнялось в макросе. Это приводило к тома, что обрамление выполнялось для диапазона определенных размеров – 4 столбца и 5 строк. Если выделение диапазона выполнять до записи макроса, то размер диапазона обрамления будет произволен.

    Задание 3

    Выполните обрамление диапазона A1:D5. Но сначала надо выделить данный диапазон, а потом выполнить команду Макрос Запись макроса. Задайте имя макроса обрамление3, комбинация клавиш Ctrl+у.

    После записи макроса выделите ячейки B10:K12 и вызовите макрос

    обрамление3.

    Сохраните книгу под именем Макросы.

    Просмотр макросов.


    При записи макросов Макрорекодер записывает все выполненные команды в макрос. Эти макросы находятся в модулях и можно увидеть текст этих макросов и, при необходимости, изменить. Это широко используется в программировании VBA. Нет необходимости точно запоминать команды форматирования, копирования и т.д. Достаточно записать их в командный макрос, а потом изменить так как надо. И в нашем случае не надо помнить команды обрамления на языке VBA. Макрорекодер их сам запишет.

    Для просмотра текста макроса надо:

    1. Выполнить команду МакросМакрос.

    2. Выбрать нужный макрос.

    3. Щелкнуть по кнопке Изменить.



    После этого откроется окно Visual Basic и в окне Модуля1 будет выведен код макроса обрамление1.



    Любой макрос имеет следующую структуру:

    Sub НазваниеМакроса() Команда VBA

    Команда VBA

    . . .

    End Sub

    Текст зеленого цвета это комментарии. Комментарии начинаются со знака «апостроф» и не выполняются компьютером.

    Рассмотрим код макроса обрамление1.

    Sub обрамление1() '

    ' обрамление1 Макрос '

    ' Сочетание клавиш: Ctrl+й '

    Range("A1:D5").Select „Выделяется диапазон A1:D5

    „Все команды выполняются для выделенного диапазона

    диагонального обрамления нет Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone

    задается стиль левой границы

    With Selection.Borders(xlEdgeLeft)

    .LineStyle = xlDouble „двойная линия

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThick End With

    задается стиль верхней границы With Selection.Borders(xlEdgeTop)

    .LineStyle = xlDouble „двойная линия

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThick End With

    задается стиль нижней границы

    With Selection.Borders(xlEdgeBottom)

    .LineStyle = xlDouble „двойная линия

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThick End With

    задается стиль правой границы

    With Selection.Borders(xlEdgeRight)

    .LineStyle = xlDouble „двойная линия

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThick End With

    задается стиль внутренней вертикальной With Selection.Borders(xlInsideVertical)

    .LineStyle = xlContinuous „одинарная сплошная линия

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThin End With

    задается стиль внутренней горизонтальной With Selection.Borders(xlInsideHorizontal)

    .LineStyle = xlContinuous „одинарная сплошная линия

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThin End With

    End Sub

    Рассмотрим код макроса обрамление2.

    Sub обрамление2() '

    ' обрамление2 Макрос '

    ' Сочетание клавиш: Ctrl+ц '

    ActiveCell.Range("A1:D5").Select

    ‗от активной ячейки выделяется диапазон A1:D5 Остальной текст программы совпадает с обрамление1.

    Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft)

    .LineStyle = xlDouble

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThick End With

    With Selection.Borders(xlEdgeTop)

    .LineStyle = xlDouble

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThick End With

    With Selection.Borders(xlEdgeBottom)

    .LineStyle = xlDouble

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThick End With

    With Selection.Borders(xlEdgeRight)

    .LineStyle = xlDouble

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThick End With

    With Selection.Borders(xlInsideVertical)

    .LineStyle = xlContinuous

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThin End With

    With Selection.Borders(xlInsideHorizontal)

    .LineStyle = xlContinuous

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThin End With

    End Sub

    Код макроса обрамление 3

    Sub обрамление3() '

    ' обрамление3 Макрос '

    ' Сочетание клавиш: Ctrl+у

    'Все команды выполняются для выделенного диапазона Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft)

    .LineStyle = xlDouble

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThick End With

    With Selection.Borders(xlEdgeTop)

    .LineStyle = xlDouble

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThick End With

    With Selection.Borders(xlEdgeBottom)

    .LineStyle = xlDouble

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThick End With

    With Selection.Borders(xlEdgeRight)

    .LineStyle = xlDouble

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThick End With

    With Selection.Borders(xlInsideVertical)

    .LineStyle = xlContinuous

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThin End With

    With Selection.Borders(xlInsideHorizontal)

    .LineStyle = xlContinuous

    .ColorIndex = xlAutomatic

    .TintAndShade = 0

    .Weight = xlThin End With

    End Sub

      1. Задания для самостоятельной работы


      2. Создать макрос, который объединяет выделенные ячейки и форматирует текст в этой объединенной ячейке по центру по горизонтали и по вертикали.

      3. Создать макрос, который защищает лист с паролем.

      4. Создать макрос, который снимает защиту листа с паролем.


    написать администратору сайта