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

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

  • Макросы Макросы

  • Задания к лабораторной работе Задание 1

  • Макрос Относительные ссылки

  • Задание 3 Выполните обрамление диапазона A1:D5. Но сначала надо выделить данный диапазон, а потом выполнить команду Макрос Запись макроса.

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

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

  • Вопросы к лабораторной работе

  • ЛР1. Лабораторная работа Макросы Цель и задачи работы определение и понятие Макрос, сущность языка программирования vba


    Скачать 299.7 Kb.
    НазваниеЛабораторная работа Макросы Цель и задачи работы определение и понятие Макрос, сущность языка программирования vba
    Дата20.05.2022
    Размер299.7 Kb.
    Формат файлаpdf
    Имя файлаЛР1.pdf
    ТипЛабораторная работа
    #540020

    1
    Лабораторная работа № 1. Макросы
    Цель и задачи работы: определение и понятие «Макрос», сущность языка программирования VBA.
    Теоретическое обоснование
    Макрос – это программа, состоящая из списка команд, которые должны быть выполнены приложением. Макрос служит для объединения нескольких различных действий в одну процедуру, которую вы можете легко вызвать.
    Этот список команд состоит в основном из макрокоманд, которые тесно связаны с командами приложения, в котором вы создаете макрос – т. е. с командами Word, Excel или других приложений Microsoft Office. Запись макросов позволяет не просто запомнить последовательность вызовов команд меню, нажатий на кнопки мыши и ввод данных с клавиатуры, но и перевести эти действия на объектно-ориентированный язык программирования Visual Basic для приложений (Visual Basic for
    Applications, в дальнейшем просто VBA) и сохранить их в виде готовой к вы- полнению программы.
    VBA является полноценным языком программирования, позволяющим записать не только последовательно выполняемые пользователем действия, но и содержащим все необходимые конструкции языка программирования высокого уровня, включая разнообразные средства организации ветвлений, циклов и ведения диалога с пользователем. Весьма удобный редактор VBA позволяет не только писать и редактировать программы, но и вести их отладку.
    Можно выделить следующие разновидности макросов:
    Командные макросы – это наиболее распространенные макросы, обычно состоящие из операторов, эквивалентных тем или иным командам меню или параметрам диалоговых окон. Основным предназначением такого макроса является выполнение действий, аналогичных командам меню – т. е. изменение окружения и основных объектов приложения

    2
    Пользовательские функции – работают аналогично встроенным функциям Excel. Отличие этих функций от командных макросов состоит в том, что они используют значения передаваемых им аргументов, производят некоторые вычисления и возвращают результат в точку вызова, но не изменяют среды приложения
    Макрофункции – представляют собой сочетание командных макросов и пользовательских функций. Наряду с тем, что они могут использовать аргументы и возвращать результат, подобно пользовательским функциям, они могут также изменять среду приложения, как и командные макросы.
    Чаще всего эти макросы вызываются из других макросов, и активно используются для модульного программирования. Если необходимо выполнить ряд одинаковых действий в различных макросах, то обычно эти действия выделяются в отдельную макрофункцию (подпрограмму), которая вызывается всякий раз, когда необходимо выполнить эти повторяющиеся действия.
    Порядок выполнения
    Для автоматической записи макроса надо выполнить следующие действия:
    1. В обычном режиме выполнить команды, которые надо сохранить в макросе. Это надо сделать, чтобы четко выполнить последовательность команд.
    2. Перейти в режим записи макроса.
    3. Задать имя макроса.
    4. Выполнить необходимую последовательность команд.
    5. Выйти из режима записи макроса. Рассмотрим подробнее пункты со 2 по 5.
    Для переход в режим записи макроса надо на вкладке Разработчик выполнить команду Макрос
    Запись макроса. В появившемся окне задать

    3 имя макроса.
    Рис.1
    Имя макроса может содержать буквы и цифры и не может содержать пробелы. Можно связать выполнение макроса с комбинацией клавиш. Эта комбинация так же задается в окне записи макроса. В этом же окне можно описать, что делает данный макрос.
    После щелчка по кнопке OK. Выполняется последовательность команд, которую надо запомнить в макросе.
    В конце выполняется команда Макрос
    Остановить запись.
    Вызвать макрос можно двумя способами.
    1 способ
    Выполнить команду Макросы
    Макросы. В окне Макрос (Рис.2) выбрать нужный макрос и щелкнуть по кнопке Выполнить.

    4
    В этом же окне можно удалить макрос, который работает не правильно. 2 способ
    Нажать комбинацию клавиш, связанную с данным макросом.
    Задания к лабораторной работе
    Задание 1
    Создать макрос, который выделяет диапазон таблицы A1:D5, и выполняет его обрамление. Внешние границы обрамления - двойная линия. Внутренние линии - одинарные. Результат:
    Имя макроса – обрамление1. Комбинация клавиш: Ctrl+й.
    После записи макроса перейдите на новый лист и вызовите макрос любым из описанных способов. Обратите внимание, что во всех случаях выполнение макроса связано с конкретным диапазоном A1:D5, но не

    5 привязано к листу данной книги.
    Можно записать командный макрос привязанный не к конкретным ячейкам, а к положению курсора. Для этого надо записывать макрос в режиме относительной адресации.
    Задание 2
    Создать макрос, который выполняет обрамление 4 столбцов и 5 строк.
    Внешние границы обрамления - двойная линия. Внутренние линии - одинарные. Порядок выполнения:
    1. Установите курсор в ячейку A1.
    2. Выполните команду Макрос
    Запись макроса.
    3. Задайте имя макроса обрамление2. комбинация клавиш Ctrl+ц.
    4. После щелчка по кнопке OK выполните команду Макрос
    
    Относительные ссылки
    5. Выделите диапазон A1:D5.
    6. Выполните заданное обрамление диапазона.
    7. Выполните команду Макрос
    Остановить запись.
    После записи макроса поставьте курсор в ячейку D8 и выполните макрос
    обрамление2.
    В обоих заданиях выделение диапазона выполнялось в макросе. Это приводило к тома, что обрамление выполнялось для диапазона определенных размеров – 4 столбца и 5 строк. Если выделение диапазона выполнять до записи макроса, то размер диапазона обрамления будет произволен.
    Макрос_Запись_макроса.'>Задание 3
    Выполните обрамление диапазона A1:D5. Но сначала надо выделить данный диапазон, а потом выполнить команду Макрос
    Запись макроса.
    Задайте имя макроса обрамление3, комбинация клавиш – Ctrl+у.
    После записи макроса выделите ячейки B10:K12 и вызовите

    6 макрос
    обрамление3.
    Сохраните книгу под именем Макросы.
    Просмотр макросов
    При записи макросов Макрорекодер записывает все выполненные команды в макрос. Эти макросы находятся в модулях и можно увидеть текст этих макросов и, при необходимости, изменить. Это широко используется в программировании VBA. Нет необходимости точно запоминать команды форматирования, копирования и т.д. Достаточно записать их в командный макрос, а потом изменить так как надо. И в нашем случае не надо помнить команды обрамления на языке VBA. Макрорекодер их сам запишет.
    Для просмотра текста макроса надо:
    1. Выполнить команду Макрос
    Макрос.
    2. Выбрать нужный макрос.
    3. Щелкнуть по кнопке Изменить.
    После этого откроется окно Visual Basic и в окне Модуля1 будет выведен код макроса обрамление1.

    7
    Любой макрос имеет следующую структуру: 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)

    8
    .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

    9
    .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

    10
    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. Создать макрос, который снимает защиту листа с паролем.
    Вопросы к лабораторной работе
    1. Какой макрос, объединяет выделенные ячейки и форматирует текст в этой объединенной ячейке по центру по горизонтали и по вертикали.
    2. Какой макрос, защищает лист с паролем.
    3. Какой макрос, снимает защиту листа с паролем.


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